Número de dias no mês atual usando iOS?
-
19-09-2019 - |
Pergunta
Como posso obter o atual número de dias no mês atual usando NSDate ou algo semelhante em Cocoa Touch?
Solução
Você pode usar as classes NSDate
e 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
é um objeto NSDate
representando a data atual; isso pode ser usado para calcular o número de dias no mês atual. Um objeto NSCalendar
é então instanciado, que pode ser usado, em conjunto com o NSDate
para a data atual, para retornar o número de dias no mês atual usando a função rangeOfUnit:inUnit:forDate:
.
days.length
conterá o número de dias do mês atual.
Aqui estão os links para os documentos para NSDate
e NSCalendar
se você quiser mais informações.
Outras dicas
sintaxe Swift:
let date = NSDate()
let cal = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian)!
let days = cal.rangeOfUnit(.CalendarUnitDay, inUnit: .CalendarUnitMonth, forDate: date)
-[NSCalendar rangeOfUnit:inUnit:forDate:]
Swift 3 sintaxe mudou um pouco de resposta de Erez:
let cal = Calendar(identifier: .gregorian)
let monthRange = cal.range(of: .day, in: .month, for: Date())!
let daysInMonth = monthRange.count