使用iOS的当月天数?

Bro*_*olf 68 cocoa datetime cocoa-touch nscalendar ios

如何使用NSDate或Cocoa touch中的类似内容获取当月的当前天数?

Ale*_*ski 164

你可以使用NSDateNSCalendar类:

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];
Run Code Online (Sandbox Code Playgroud)

todayNSDate表示当前日期的对象; 这可以用来计算当月的天数.NSCalendar然后实例化一个对象,该对象可以与NSDate当前日期一起使用,以使用该rangeOfUnit:inUnit:forDate:函数返回当前月份的天数.

days.length 将包含当月的天数.

以下是文档的链接NSDate,NSCalendar如果您想了解更多信息.


小智 11

Swift语法:

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


Jos*_*ick 6

Swift 3 语法与 Erez 的回答略有不同:

let cal = Calendar(identifier: .gregorian)
let monthRange = cal.range(of: .day, in: .month, for: Date())!
let daysInMonth = monthRange.count
Run Code Online (Sandbox Code Playgroud)


Rob*_*ier 5

-[NSCalendar rangeOfUnit:inUnit:forDate:]