2009-07-24 36 views

Trả lời

159

Bạn có thể sử dụng NSDateNSCalendar lớp:

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 là một đối tượng NSDate đại diện cho ngày hiện tại; điều này có thể được sử dụng để tính số ngày trong tháng hiện tại. Một đối tượng NSCalendar sau đó được khởi tạo, có thể được sử dụng, kết hợp với NSDate cho ngày hiện tại, để trả lại số ngày trong tháng hiện tại bằng cách sử dụng chức năng rangeOfUnit:inUnit:forDate:.

days.length sẽ chứa số ngày trong tháng hiện tại.

Dưới đây là các liên kết tới tài liệu cho NSDateNSCalendar nếu bạn muốn biết thêm thông tin.

+0

Trông như thế này sẽ làm các trick. Cảm ơn :) –

+0

Tôi nghĩ rằng bạn có nghĩa là forDate: hôm nay –

+0

Có, tôi đã làm, xin lỗi, gọi nó là 'ngày' khi tôi đã thử nghiệm nó trong Xcode. –

4

-[NSCalendar rangeOfUnit:inUnit:forDate:]

9

Swift cú pháp:

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

Swift 3 cú pháp đã thay đổi một chút từ câu trả lời của Erez:

let cal = Calendar(identifier: .gregorian) 
let monthRange = cal.range(of: .day, in: .month, for: Date())! 
let daysInMonth = monthRange.count 
Các vấn đề liên quan