要获得两天内的两个日期之间的差额,我做了以下事情:
let calendar = Calendar.current
guard let startDate = timeStartDate else { return }
let pastTime = calendar.dateComponents([.day], from: startDate, to: Date())
现在我正在尝试使用pastTime
进行计算,因此我需要Int
。如何将类型DateComponent
的值转换为Int
?
到目前为止,使用Int(pastTime)
时出现以下错误:
初始化器'init(_ :)'要求'DateComponents'符合'BinaryInteger'
答案 0 :(得分:1)
pastTime
的类型为DateComponents
,因此不能将其作为参数传递给Int
初始化程序。
使用DateComponents
的{{3}}属性:
let numberOfDays = pastTime.day
这是可选的Int
,但是由于您在day
中指定了dateComponents:from:to
组件,因此可以安全地将其展开,如@vadian所述:
let numberOfDays = pastTime.day!