Чтобы получить первый день недели, вы можете использовать следующий код.
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. выберите «единого царства»