2009-07-24 13 views

Odpowiedz

159

Można użyć NSDate i NSCalendar klasy:

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 jest NSDate obiekt reprezentujący bieżącą datę; można to wykorzystać do obliczenia liczby dni w bieżącym miesiącu. Następnie tworzony jest obiekt NSCalendar, który może być użyty w połączeniu z NSDate dla bieżącej daty, aby zwrócić liczbę dni w bieżącym miesiącu przy użyciu funkcji rangeOfUnit:inUnit:forDate:.

days.length będzie zawierać liczbę dni w bieżącym miesiącu.

Oto linki do dokumentów dla NSDate i NSCalendar, jeśli chcesz uzyskać więcej informacji.

+0

Wygląda na to rade. Dzięki :) –

+0

Myślę, że chodziło o date: dziś –

+0

Tak, zrobiłem, przepraszam, nazwałem to "date", kiedy testowałem to w Xcode. –

4

-[NSCalendar rangeOfUnit:inUnit:forDate:]

9

Swift składnia:

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

Swift składnia 3 zmieniła się nieco od odpowiedzi Erez za:

let cal = Calendar(identifier: .gregorian) 
let monthRange = cal.range(of: .day, in: .month, for: Date())! 
let daysInMonth = monthRange.count 
Powiązane problemy