将DateComponent转换为Int

时间:2019-05-06 19:24:04

标签: ios swift

要获得两天内的两个日期之间的差额,我做了以下事情:

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'

1 个答案:

答案 0 :(得分:1)

pastTime的类型为DateComponents,因此不能将其作为参数传递给Int初始化程序。

使用DateComponents的{​​{3}}属性:

let numberOfDays = pastTime.day 

这是可选的Int,但是由于您在day中指定了dateComponents:from:to组件,因此可以安全地将其展开,如@vadian所述:

let numberOfDays = pastTime.day!