如何计算2个日期之间的天数

时间:2018-05-16 20:35:08

标签: swift

我创建了一些代码,用于检索当前日期并将其格式化为正确的格式,并且我有第二个日期是字符串。我该如何计算天差。我已经阅读了很多关于如何实现它的帖子。

当前代码:

    let date = Date()
    let formatter = DateFormatter()
    formatter.dateFormat = "dd.MM.yyyy"

    let currentDateFormatted = formatter.string(from: date)
    let endDate = "16.05.2018"

我尝试过以下代码,但是我收到错误"表达式类型不明确,没有更多上下文"。

    let date = Date()
    let formatter = DateFormatter()
    formatter.dateFormat = "dd.MM.yyyy"

    let currentDateFormatted = formatter.string(from: date)
    let endDate = "16.05.2018"
    let endDateFormatted= formatter.date(from: endDate)

    let calendar = Calendar.current 
    let components = calendar.dateComponents([.day], from: currentDateFormatted, to: endDateFormatted)

1 个答案:

答案 0 :(得分:3)

您需要使用日期格式化程序将endDate字符串转换为Date。然后将date和新Date传递给dateComponents来电。然后访问生成的day。{/ p>的components属性

使用日历,而不是NSCalendar。

let startDate = Date()
let endDateString = "16.05.2018"

let formatter = DateFormatter()
formatter.dateFormat = "dd.MM.yyyy"

if let endDate = formatter.date(from: endDateString) {
    let components = Calendar.current.dateComponents([.day], from: startDate, to: endDate)
    print("Number of days: \(components.day!)")
} else {
    print("\(endDateString) can't be converted to a Date")
}