一个看似简单的问题......如何返回任何指定月份的天数列表?
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];
我基本上想要使用它,但用1月份的today
替换,所以我可以返回所有那些日子
答案 0 :(得分:60)
Carl的回答适用于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);
答案 1 :(得分:2)
您可以使用几乎任何字符串来创建日期:
NSDate *date = [NSDate dateWithNaturalLanguageString:@"January"];
然后,您的其余代码将按原样运行,以便为您提供1月份天数的NSRange
。