2010-05-16 3 views
10

Вместо расчета месяца и високосного года для этого расчета. Есть ли способ проверить использование некоторых внутренних API-интерфейсов Apple?Любой способ найти количество дней в месяце, используя Objective C?

Я обнаружил, что Java есть что-то вроде этого:

calendar.getActualMaximum(calendar.DAY_OF_MONTH) 

Есть ли нечто подобное для Objective-C? thz u.

ответ

53

Вы можете использовать NSCalendar и его метод rangeOfUnit:inUnit:forDate. Например, чтобы получить количество дней в текущем месяце:

NSCalendar *calendar = [NSCalendar currentCalendar]; 
NSRange range = [calendar rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:[NSDate date]]; 
NSUInteger numberOfDaysInMonth = range.length; 
+4

Проверено на февраль: 'rng.length' это 29 на високосные годы и 28 на невисокосных лет (как и ожидалось, но это не больно для проверки) – Clafou

+3

Для информации 'NSDayCalendarUnit' и' NSMonthCalendarUnit' являются 'NSCalendarUnitDay' и' NSCalendarUnitMonth' в ** iOS 8 ** и выше. – TheTiger

Смежные вопросы