it-swarm.com.ru

Количество дней в текущем месяце с использованием iOS?

Как я могу получить текущее количество дней в текущем месяце, используя NSDate или что-то подобное в Touch Cocoa?

66
Brock Woolf

Вы можете использовать классы NSDate и NSCalendar:

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 - это объект NSDate, представляющий текущую дату; это может быть использовано для определения количества дней в текущем месяце. Затем создается экземпляр объекта NSCalendar, который можно использовать вместе с NSDate для текущей даты, чтобы вернуть количество дней в текущем месяце с помощью функции rangeOfUnit:inUnit:forDate:.

days.length будет содержать количество дней в текущем месяце.

Вот ссылки на документы для NSDate и NSCalendar , если вам нужна дополнительная информация.

161
Alex Rozanski

Быстрый синтаксис:

let date = NSDate()
let cal = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian)!
let days = cal.rangeOfUnit(.CalendarUnitDay, inUnit: .CalendarUnitMonth, forDate: date)
11
Erez Haim

-[NSCalendar rangeOfUnit:inUnit:forDate:]

5
Rob Napier

Синтаксис Swift 3 немного изменился по сравнению с ответом Эреза:

let cal = Calendar(identifier: .gregorian)
let monthRange = cal.range(of: .day, in: .month, for: Date())!
let daysInMonth = monthRange.count
2
Josh Sherick