Неправильный компонент неделя с даты на IOS5 - PullRequest
0 голосов
/ 08 декабря 2011

Формат моего региона - США, и я получаю номера недель, отличные от тех, которые я получаю на Mac OSx, который также находится в США. Я использую iOS 5 и не программировал на iOS до этой версии SDK. Так что я просто хочу убедиться, что я не делаю что-то не так. С помощью приведенного ниже кода я получаю за последнюю неделю года число 53, которое я считаю неправильным. Мой первый день недели назначен на воскресенье. Пожалуйста, совет, спасибо.

 NSCalendar* calendar = [NSCalendar currentCalendar];
    NSDate *date = [NSDate date];


    NSDateComponents *dateComponents = [calendar components:( NSWeekCalendarUnit) fromDate:date ];
    int week = (int)[dateComponents week];


    NSLog(@"%i", week);

Будучи [дата NSDate] 8 декабря, он возвращает номер недели 50, но в Mac OSX я получаю неделю 49

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Во-первых, я вижу, что вы изменили свой код, чтобы избавиться от бессмыслицы 'gregorianCalendar'. Хорошо.

Когда я попробовал ваш код в тестовом приложении:

NSCalendar *calendar = [NSCalendar currentCalendar]; 
NSDateComponents *dateComponents = [calendar components:( NSWeekCalendarUnit) fromDate:[NSDate date]];
int week = (int)[dateComponents week];
[calendar release];
NSLog( @"week is %d", week);
return week;

Я получаю 49 (что для меня имеет смысл).

Если вы получаете 53, значит, вы пропустили неправильную дату.

0 голосов
/ 18 апреля 2012

Вы проверяли локаль? Есть случаи, когда номера недели отличаются между США и Европой, например.

...