Iv нашел способ отобразить любое название дня недели, используя nscalender, используя следующий код:
Просто откройте консоль из строки меню xcode, чтобы увидеть результаты. Скопируйте следующий код в метод viewDidLoad, чтобы получить первый день недели
NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy :EEEE"];
NSString *dateString = [dateFormat stringFromDate:today];
NSLog(@"date: %@", dateString);
[dateFormat release];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:today];
[components setDay:([components day]-([components weekday]-1))];
NSDate *beginningOfWeek = [gregorian dateFromComponents:components];
NSDateFormatter *dateFormat_first = [[NSDateFormatter alloc] init];
[dateFormat_first setDateFormat:@"MM/dd/yyyy :EEEE"];
NSString *dateString_first = [dateFormat_first stringFromDate:beginningOfWeek];
NSLog(@"First_date: %@", dateString_first);
Вывод будет:
date: 02/11/2010 :Thursday
First_date: 02/07/2010 :Sunday
, так как я запустил эту программу 2/11/2010, вы получите желаемый результат в зависимости от текущей даты.
Точно так же, если вы хотите получить первый рабочий день недели, то есть дату понедельника, просто немного измените код:
ИЗМЕНЕНИЕ: [components setDay:([components day]-([components weekday]-1))];
TO
[components setDay:([components day]-([components weekday]-2))];
чтобы получить дату понедельника для этой недели ..
Точно так же вы можете попытаться найти дату любого из семи рабочих дней, изменив целое число -1, -2 и так далее ...
Надеюсь, вы ответили на вопрос ..
Спасибо,
Бонсон Диас