You get an error message because 0
is not a valid value for NSCalendarOptions
.
For "no options", use NSCalendarOptions(0)
or simply nil
:
let ageComponents = calendar.components(.CalendarUnitYear,
fromDate: birthday,
toDate: now,
options: nil)
let age = ageComponents.year
(Specifying nil
is possible because NSCalendarOptions
conforms to the RawOptionSetType
protocol which in turn inherits
from NilLiteralConvertible
.)
Update for Swift 2:
let ageComponents = calendar.components(.Year,
fromDate: birthday,
toDate: now,
options: [])
Update for Swift 3:
Assuming that the Swift 3 types Date
and Calendar
are used:
let now = Date()
let birthday: Date = ...
let calendar = Calendar.current
let ageComponents = calendar.dateComponents([.year], from: birthday, to: now)
let age = ageComponents.year!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…