Domanda

Come posso ottenere l'attuale numero di giorni nel mese corrente utilizzando NSDate o qualcosa di simile in contatto Cocoa?

È stato utile?

Soluzione

È possibile utilizzare le classi 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 Scopo NSDate rappresenta la data corrente; questo può essere usato per calcolare il numero di giorni nel mese corrente. Un oggetto NSCalendar viene poi istanziata, che può essere utilizzato, in combinazione con il NSDate per la data corrente, restituire il numero dei giorni del mese corrente utilizzando la funzione rangeOfUnit:inUnit:forDate:.

days.length conterrà il numero di giorni nel mese corrente.

Ecco i link ai documenti per NSDate e NSCalendar se si vuole di più informazioni.

Altri suggerimenti

sintassi Swift:

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

-[NSCalendar rangeOfUnit:inUnit:forDate:]

Swift 3 sintassi è cambiato un po 'dalla risposta di Erez:

let cal = Calendar(identifier: .gregorian)
let monthRange = cal.range(of: .day, in: .month, for: Date())!
let daysInMonth = monthRange.count
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top