如何使用NSCalendar知道一个月内的星期一日期列表?

时间:2011-06-03 02:09:26

标签: objective-c

我想知道Objective-C中使用NSCalendar的一个月内所有星期一的日期。所以请帮帮我。

提前致谢

2 个答案:

答案 0 :(得分:1)

几个月前我为此写了一个解决方案

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

答案 1 :(得分:0)

来自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个左右的日期。

这可能不是最漂亮的解决方案,但它应该有效。