如何计算当月/年的天数

Adr*_*ian 1 ios swift

有没有方法可以NSDate/NSCalendar计算当月和当年的天数?

我唯一看到的是获得给定日期或两个日期之间的天数.
这是唯一的方法吗?

Mar*_*n R 9

这是一种适用于月份和年份的方法:

let calendar = NSCalendar.currentCalendar()
let date = NSDate()

// Calculate start and end of the current year (or month with `.Month`):
var startOfInterval : NSDate?
var lengthOfInterval = NSTimeInterval()
calendar.rangeOfUnit(.Year, startDate: &startOfInterval, interval: &lengthOfInterval, forDate: date)
let endOfInterval = startOfInterval!.dateByAddingTimeInterval(lengthOfInterval)

// Compute difference in days:
let days = calendar.components(.Day, fromDate: startOfInterval!, toDate: endOfInterval, options: [])
print(days)
Run Code Online (Sandbox Code Playgroud)

(您可能希望添加一些错误检查,而不是强行解包选项.)


Swift 3更新:

let calendar = Calendar.current
let date = Date()

// Calculate start and end of the current year (or month with `.month`):
let interval = calendar.dateInterval(of: .year, for: date)!

// Compute difference in days:
let days = calendar.dateComponents([.day], from: interval.start, to: interval.end).day!
print(days)
Run Code Online (Sandbox Code Playgroud)