Получите все дни любого месяца с помощью 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
, скажем, месяцем января, чтобы я мог вернуть все эти дни
Ответы
Ответ 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
количество дней в январе.