2009-07-24 13 views

Antwort

159

Sie können die NSDate und NSCalendar Klassen verwenden:

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 ist ein NSDate Objekt für das aktuelle Datum; Dies kann verwendet werden, um die Anzahl der Tage im aktuellen Monat zu ermitteln. Anschließend wird ein Objekt NSCalendar instanziiert, das in Verbindung mit dem aktuellen Datum NSDate verwendet werden kann, um die Anzahl der Tage im aktuellen Monat mithilfe der Funktion rangeOfUnit:inUnit:forDate: zurückzugeben.

days.length enthält die Anzahl der Tage im aktuellen Monat.

Hier sind die Links zu den Dokumenten für NSDate und NSCalendar, wenn Sie weitere Informationen wünschen.

+0

sieht wie folgt aus den Trick tun. Danke :) –

+0

Ich denke, du meintest forDate: heute –

+0

Ja, ich tat, sorry, nannte es "Datum", als ich es in Xcode getestet wurde. –

4

-[NSCalendar rangeOfUnit:inUnit:forDate:]

9

Swift Syntax:

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

Swift 3 Syntax hat sich ein wenig von Erez Antwort geändert:

let cal = Calendar(identifier: .gregorian) 
let monthRange = cal.range(of: .day, in: .month, for: Date())! 
let daysInMonth = monthRange.count 
Verwandte Themen