Как узнать список дат понедельника в месяце, используя NSCalendar? - PullRequest
0 голосов
/ 03 июня 2011

Я хотел бы знать даты всех понедельников в месяце, используя NSCalendar в Objective-C. Поэтому, пожалуйста, помогите мне.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 03 июня 2011

Я опубликовал решение для этого несколько месяцев назад

http://brandontreb.com/case-of-the-mondays/

0 голосов
/ 03 июня 2011

С https://discussions.apple.com/thread/1700102?start=0&tstart=0 и ссылка Apple NSCalendar:

Как насчет использования чего-то подобного -

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:1965]; // Year of the calendar month
[comps setMonth:1]; // Month
[comps setDay:6]; // Any day
NSDate *date = [gregorian dateFromComponents:comps];
[comps release];

Затем, когда у вас есть NSDate, сделайте следующее:

NSDate * testDate = [NSDate date];
NSString * weekdayString = [testDate descriptionWithCalendarFormat:@"%A" timeZone:nil
 locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]];
NSLog(@"Day of the week: %@", weekdayString);

// weekdayString should look like "Monday", etc.

Итак, вы можете перебирать дни месяца до;

[weekdayString isEqualToString:@"Monday"] // or your desired day

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

Возможно, это не самое красивое решение, но оно должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...