NSCalendar номер недели с датой

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

let currentWeekNumber = NSCalendar.currentCalendar().components(NSCalendarUnit.CalendarUnitWeekOfYear, fromDate: myDate).weekOfYear

Формат myDate выглядит следующим образом 2015-01-23 11:52:35 +0000

Решение в Swift было бы неплохо:)

3 ответа

Решение

Похоже, ваша опубликованная строка не имеет ошибок. Просто проверьте приведенное ниже решение, чтобы подтвердить, если результат такой же.

Примечание: просто пытаюсь устранить любую возможность неактуальной проблемы из-за даты. Для Swift вы можете использовать.

let calender = NSCalendar.currentCalendar()
let dateComponent = calender.components(NSCalendarUnit.WeekOfYearCalendarUnit  | NSCalendarUnit.DayCalendarUnit  | NSCalendarUnit.MonthCalendarUnit  | NSCalendarUnit.YearCalendarUnit, fromDate:NSDate())

println ("Week: = \(dateComponent.weekOfYear)")

Следовательно ответ должен быть как ниже:

Week: = 4

Попробуй это:

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitWeekOfMonth fromDate:[NSDate date]];
NSInteger curr_month = [components month];
NSInteger curr_year = [components year];
NSInteger curr_date = [components day];
NSLog(@"%d %d %d, \n Week no: %ld",curr_date, curr_month,curr_year, (long)[components weekOfMonth]);

Выходные данные: 2015-01-22 18:19:40.209 Образец [38734:3031191] 22 1 2015,

Неделя № 4

Используйте этот код

    NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitWeekOfMonth fromDate:[NSDate date]];
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSInteger month = [components month];
    NSInteger year = [components year];
    NSInteger day = [components day];
    NSLog(@"%ld",(long)[components weekOfMonth]);
Другие вопросы по тегам