Подтвердить что ты не робот

Получите все дни любого месяца с помощью objective-c

По-видимому простой вопрос... как я могу вернуть список дней за любой указанный месяц?

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

В основном я хочу использовать это, но замените today, скажем, месяцем января, чтобы я мог вернуть все эти дни

4b9b3361

Ответ 1

Ответ 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);

Ответ 2

Вы можете сделать свою дату практически любой строкой:

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

Тогда остальная часть вашего кода будет работать как есть, чтобы вернуть вам NSRange количество дней в январе.