2015-02-04 5 views
0

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

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

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

+ (NSInteger) getNumberOfWeekOfYearFromDate:(NSDate *)entryDate{ 

    NSCalendar *calendar = [NSCalendar currentCalendar]; 
    [calendar setFirstWeekday: 2]; 

    NSDateComponents *components = [calendar components:NSWeekCalendarUnit | NSYearForWeekOfYearCalendarUnit | NSYearCalendarUnit fromDate:entryDate]; 
    NSInteger weekOfYear = [components weekOfYear]; 

    return weekOfYear; 
} 

К сожалению, возвращаемые значения большого числа как «2147483647». Что я делаю не так? Я не нашел решения, когда искал в Интернете.

Приветствия и спасибо заранее

ответ

0

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

+ (NSInteger) getNumberOfWeekOfYearFromDate:(NSDate *)entryDate{ 

    NSCalendar *calendar = [NSCalendar currentCalendar]; 
    [calendar setFirstWeekday: 2]; 

    NSDateComponents *components = [calendar components: 
     NSCalendarUnitWeekOfYear | NSCalendarUnitYear fromDate:entryDate]; 

    NSInteger weekOfYear = [components weekOfYear]; 


    return weekOfYear; 
} 
Смежные вопросы