iPhone Date Picker переворачивается к 2010 27-го декабря?

Таким образом, я реализовал UIDatepicker в одном из моих приложений для планирования и автоматического набора телеконференций... все в значительной степени готово пойти кроме, при тестировании я заметил это, когда дата переворачивается с 26-го декабря до 27-го декабря, изменения года в 2010.

Я даже прокрутил его вперед к 2011..., и это изменяется, когда 25-го декабря изменяется на 26-е...., но ожидайте... в 2012, это правильно переворачивается 31 декабря - 1 января... и затем его спина к 29-му - 30-му в 2013. Есть ли некоторое астрономическое явление, я не знаю о продолжении, или Apple работает на некотором сумасшедшем календаре Heechee, о котором я не знаю? Календарное приложение работает правильно...

Наиболее вероятное объяснение, я пропускаю что-то столь очевидное, что я хлопну меня, когда я пойму это. Но эй, я не спал в..., ничего себе, я не помню если его два дня или три. Сжальтесь и помогите мне здесь.

ОБНОВЛЕНИЕ: Таким образом, возможно, это не было что-то простое. Все еще ища ответ здесь! Я - действительно единственный человек, который испытал это?? Я поставлю, когда конец декабря будет вращаться, больше людей поразит тот же контрольно-пропускной пункт.

UPDATE2: Кто-либо? Все еще смотря, все еще не находя...

UPDATE3: Все еще не нашли решение.Ну же! Это - интересная загадка!

UPDATE4: Все еще никакой ответ не найден. Я отправил приложение, и это находится теперь в Appstore. Все еще хотел бы видеть эту проблему, решенную, таким образом, я могу обновить приложение.

12
задан Joe Doyle 30 April 2012 в 23:50
поделиться

3 ответа

Возможно, проблема в том, что когда вы находитесь в последней неделе месяца и в текущем месяце осталось менее 7 дней, тогда, возможно, API относился к неделе как к первой неделе следующего месяца. С декабря 2012 года, когда в последней неделе месяца уже 7 дней, в этом месяце проблемы нет.

Я получал ту же самую проблему, и решил ее.

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

Моё требование - показать номер недели, и для этого я вычисляю номер первой недели месяца и прибавляю его к общему номеру недели в месяце.

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

Надеюсь, это вам пригодится.

.
3
ответ дан 2 December 2019 в 23:07
поделиться

В этой заметке на TUAW описывается аналогичная проблема в PhotoBooth на Mac OS X:

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

Один из комментаторов согласен с викой, что это вопрос конца недели.

1
ответ дан 2 December 2019 в 23:07
поделиться

Оказывается, это строка формата Date, которая использовалась для настройки NSDateFormatter, что и послужило причиной этого для меня.

"yyyy" соответствует 4-значному году, а YYYY соответствует году , начинающемуся с воскресенья 1-ой недели года. Зачем кому-то это понадобилось - это чья-то догадка, и было бы действительно полезно, если бы Apple предоставила ссылку на свой список спецификаторов формата, но вот так.

Просто убедитесь, что в строке формата есть компонент года в нижнем регистре, и ее нужно отсортировать.

.
3
ответ дан 2 December 2019 в 23:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: