2009-07-24 13 views

risposta

159

Offriamo le NSDate e NSCalendar classi:

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 è un oggetto NSDate rappresenta la data corrente; questo può essere usato per calcolare il numero di giorni nel mese corrente. Viene quindi istanziato un oggetto NSCalendar, che può essere utilizzato, in combinazione con lo NSDate per la data corrente, per restituire il numero di giorni nel mese corrente utilizzando la funzione rangeOfUnit:inUnit:forDate:.

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

Ecco i collegamenti ai documenti per NSDate e NSCalendar se si desiderano ulteriori informazioni.

+0

appare come questa farà il trucco. Grazie :) –

+0

Penso che intendessi per Data: oggi –

+0

Sì, l'ho fatto, mi dispiace, l'ho chiamato 'date' quando lo stavo testando su Xcode. –

4

-[NSCalendar rangeOfUnit:inUnit:forDate:]

9

sintassi Swift:

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

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 
Problemi correlati