gpt4 book ai didi

swift - 在 Swift 中使用 NSDateComponents 从出生日期计算年龄

转载 作者:IT王子 更新时间:2023-10-29 05:03:11 24 4
gpt4 key购买 nike

我正在尝试使用此函数在 Swift 中从 birthdayDate 计算年龄:

var calendar : NSCalendar = NSCalendar.currentCalendar()

var dateComponentNow : NSDateComponents = calendar.components(
NSCalendarUnit.CalendarUnitYear,
fromDate: birthday,
toDate: age,
options: 0)

但是我得到一个错误Extra argument toDate in call

在 objective-c 中,这是代码,但我不知道为什么会出现此错误:

NSDate* birthday = ...;

NSDate* now = [NSDate date];
NSDateComponents* ageComponents = [[NSCalendar currentCalendar]
components:NSYearCalendarUnit
fromDate:birthday
toDate:now
options:0];
NSInteger age = [ageComponents year];

还有比这更好的正确形式吗?

最佳答案

您收到一条错误消息,因为 0 不是 NSCalendarOptions 的有效值。对于“无选项”,使用 NSCalendarOptions(0) 或简单地使用 nil:

let ageComponents = calendar.components(.CalendarUnitYear,
fromDate: birthday,
toDate: now,
options: nil)
let age = ageComponents.year

(指定 nil 是可能的,因为 NSCalendarOptions 符合 RawOptionSetType 协议(protocol),后者又继承了来自 NilLiteralConvertible。)

Swift 2 更新:

let ageComponents = calendar.components(.Year,
fromDate: birthday,
toDate: now,
options: [])

Swift 3 更新:

假设使用了 Swift 3 类型 DateCalendar:

let now = Date()
let birthday: Date = ...
let calendar = Calendar.current

let ageComponents = calendar.dateComponents([.year], from: birthday, to: now)
let age = ageComponents.year!

关于swift - 在 Swift 中使用 NSDateComponents 从出生日期计算年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25232009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com