2013-06-12 4 views
1

, пожалуйста, посмотрите на следующие строки кода:Как получить дату начала и дату окончания недели в ИО

NSCalendar *calendar = [NSCalendar currentCalendar]; 
NSInteger weekNumber = [[calendar components: NSWeekCalendarUnit fromDate:date] week]; 

теперь, как мы можем получить первый и последний день дали номер недели (предположим, что неделя начинается с понедельника до воскресенья).

также, если можно получить массив всех дат, принадлежит к тому же номеру недели.

ответ

1

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

NSDate *now = [NSDate date]; 

    NSCalendar *calendar = [NSCalendar currentCalendar]; 
    NSInteger weekNumber = [[calendar components: NSWeekCalendarUnit fromDate:now] week]; 

    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 

    NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:now]; 
    [comp setWeek:weekNumber]; //Week number. 
    [comp setWeekday:1]; //First day of the week. Change it to 7 to get the last date of the week 

    NSDate *resultDate = [gregorian dateFromComponents:comp]; 

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"MMM d, yyyy"]; 

    NSString *myDateString = [formatter stringFromDate:resultDate]; 
    NSLog(@"%@",myDateString); 

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

Как только у вас есть первый день и последний день недели, вы можете получить все даты, указанные в приведенной ниже ссылке. Array for dates between two dates

Примечание: неделя начинается с понедельника для региона, в котором находится Великобритания.

Чтобы изменить календарь iPhone, чтобы показать понедельник как первый день недели. 1. Нажмите «Настройки» 2. нажмите «Общие» 3. нажмите «Международный» 4. нажмите «Регион Формат» 5. выберите «единого царства»

Смежные вопросы