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、例えば1月に置き換えれば、その日は全部帰れるようになります

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"];

その後、残りのコードはそのまま機能しNSRange、1月の日数を返します。

于 2009-11-13T19:37:26.430 に答える