Frage

Wie kann ich die aktuelle Anzahl der Tage im aktuellen Monat mit NSDate oder etwas ähnliches in Cocoa Touch bekommen?

War es hilfreich?

Lösung

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 die Anzahl der Tage im aktuellen Monat zu arbeiten, verwendet werden. Ein NSCalendar Objekt wird dann instanziiert, die mit dem NSDate für das aktuelle Datum in Verbindung verwendet werden kann, um die Anzahl der Tage im aktuellen Monat mit der rangeOfUnit:inUnit:forDate: Funktion zurückzukehren.

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

Hier sind die Links zu dem docs für NSDate und NSCalendar wenn Sie mehr wollen Informationen.

Andere Tipps

Swift Syntax:

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

-[NSCalendar rangeOfUnit:inUnit:forDate:]

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top