71

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

4

4 回答 4

167

您可以使用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];

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

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

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

于 2009-07-24T20:29:50.423 回答
11

斯威夫特语法:

let date = NSDate()
let cal = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian)!
let days = cal.rangeOfUnit(.CalendarUnitDay, inUnit: .CalendarUnitMonth, forDate: date)
于 2015-04-29T23:48:38.943 回答
6

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

let cal = Calendar(identifier: .gregorian)
let monthRange = cal.range(of: .day, in: .month, for: Date())!
let daysInMonth = monthRange.count
于 2017-03-16T18:41:31.377 回答
5

-[NSCalendar rangeOfUnit:inUnit:forDate:]

于 2009-07-24T20:26:28.793 回答