Количество дней в текущем месяце с использованием iOS?
-
19-09-2019 - |
Вопрос
Как я могу получить текущее количество дней в текущем месяце, используя NSDate или что-то подобное в Cocoa touch?
Решение
Вы можете использовать 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
если вам нужна дополнительная информация.
Другие советы
Быстрый синтаксис:
let date = NSDate()
let cal = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian)!
let days = cal.rangeOfUnit(.CalendarUnitDay, inUnit: .CalendarUnitMonth, forDate: date)
-[NSCalendar rangeOfUnit:inUnit:forDate:]
Синтаксис Swift 3 немного изменился по сравнению с ответом Эреза:
let cal = Calendar(identifier: .gregorian)
let monthRange = cal.range(of: .day, in: .month, for: Date())!
let daysInMonth = monthRange.count