16

一个看似简单的问题...如何返回任何指定月份的天数列表?

NSDate *today = [NSDate date]; //Get a date object for today's date
NSCalendar *c = [NSCalendar currentCalendar];
NSRange days = [c rangeOfUnit:NSDayCalendarUnit 
                       inUnit:NSMonthCalendarUnit 
                      forDate:today];

我基本上想使用它,但是用today一月份代替,这样我就可以返回所有那些日子

4

2 回答 2

60

卡尔的答案适用于 Mac。以下适用于 Mac 或 iPhone(dateWithNaturalLanguageString:那里不可用)。

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease];

// Set your year and month here
[components setYear:2015];
[components setMonth:1];

NSDate *date = [calendar dateFromComponents:components];
NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:date];

NSLog(@"%d", (int)range.length);
于 2009-11-13T19:39:22.947 回答
2

您可以使用几乎任何字符串来创建日期:

NSDate *date = [NSDate dateWithNaturalLanguageString:@"January"];

然后,您的其余代码将按原样工作,以返回NSRange1 月份的天数。

于 2009-11-13T19:37:26.430 回答