Pergunta

Como posso obter o atual número de dias no mês atual usando NSDate ou algo semelhante em Cocoa Touch?

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top