Question Date Picker de l'iPhone se termine en 2010 le 27 décembre?


J'ai donc implémenté un UIDatepicker dans l'une de mes applications pour la planification et la numérotation automatique des téléconférences ... tout est prêt à fonctionner, sauf en testant la date du 26 décembre au 27 décembre.

Je l'ai même reporté à 2011 ... et ça change quand le 25 décembre change au 26 ... mais attendez ... en 2012, il se déroule correctement le 31 décembre - le 1er janvier ... 29-30 en 2013. Y a-t-il une sorte de phénomène astronomique que je ne connais pas ou qu'Apple a-t-il sur un calendrier fou de Heechee que je ne connais pas? L'application de calendrier fonctionne correctement ...

L'explication la plus probable est que je manque quelque chose de si évident que je me giflerai quand je le réaliserai. Mais bon, je n'ai pas dormi ... wow, je ne me souviens pas si cela fait deux ou trois jours. Prenez pitié et aidez-moi ici.

MISE À JOUR: Alors peut-être que ce n'était pas quelque chose de simple. Toujours à la recherche d'une réponse ici! Suis-je vraiment la seule personne qui a vécu cela? Je parie que, à la fin du mois de décembre, plus de gens tomberont sur le même obstacle.

MISE À JOUR2: Quelqu'un? Toujours à la recherche, toujours pas trouver ...

MISE À JOUR3: Vous n'avez toujours pas trouvé de solution. Allons! C'est un puzzle intéressant!

UPDATE4: Toujours pas de réponse trouvée. J'ai soumis l'application et elle est maintenant dans l'appstore. Je voudrais encore voir ce problème résolu afin que je puisse mettre à jour l'application.


12
2017-11-16 22:55


origine


Réponses:


Il peut y avoir ce problème, que lorsque vous êtes sur la dernière semaine du mois et que la semaine a moins de 7 jours dans le mois en cours, l’API a peut-être traité la semaine comme la première semaine du mois suivant. Depuis décembre 2012 a déjà 7 jours dans sa dernière semaine, il n'y a pas de problème dans ce mois.

J'avais le même problème ici et je l'ai résolu.

- (int) currentWeekOfMonth
{
    return CFCalendarGetOrdinalityOfUnit (
           CFCalendarCopyCurrent(),
           kCFCalendarUnitWeek,
           kCFCalendarUnitMonth,
           [self absoluteTime]);
}

Mon exigence est de montrer le numéro de semaine et pour cela, je calcule le numéro de semaine de la première semaine du mois et l'ajoute au nombre total de semaines du mois.

int currentWeekNumberInYear =   [_calendarInfo currentWeekOfYear];
int currentWeekNumberInMonth = [_calendarInfo currentWeekOfMonth];
currentWeekNumberInYear = currentWeekNumberInYear-currentWeekNumberInMonth +1;
currentWeekNumberInYear = currentWeekNumberInYear<0 ? (NSInteger)[_calendarInfo weeksInMonth] ==5 ?49:48   : currentWeekNumberInYear;

J'espère que cela vous sera utile.


3
2017-12-29 15:36



Il s’agit de la chaîne de format Date utilisée pour configurer le NSDateFormatter qui causait cela pour moi.

"aaaa" correspond à l'année à 4 chiffres, alors que AAAA correspond à l'année à partir du dimanche de la 1ère semaine de l'année. Pourquoi quelqu'un voudrait-il que ce soit le cas, et cela serait vraiment utile si Apple fournissait un lien vers sa liste de spécificateurs de format, mais voilà.

Assurez-vous simplement que votre chaîne de format contient le composant year en minuscules et qu'elle doit être triée.


3
2017-12-31 00:53



Cet article sur TUAW décrit un problème similaire dans PhotoBooth sur Mac OS X:

http://www.tuaw.com/2009/12/29/beware-photo-booth-time-stamps-its-a-bug-not-a-feature/

Un intervenant est d’accord avec les vikas sur le fait qu’il s’agit d’un numéro de fin de semaine.


1
2017-12-30 01:26