Una domanda abbastanza semplice, sto cercando di capire come ottenere l'attuale numero di giorni nel mese corrente usando NSDate o qualcosa di simile nel tocco Cocoa. Grazie.Numero di giorni nel mese corrente utilizzando iPhone SDK?
64
A
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.
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
appare come questa farà il trucco. Grazie :) –
Penso che intendessi per Data: oggi –
Sì, l'ho fatto, mi dispiace, l'ho chiamato 'date' quando lo stavo testando su Xcode. –