Swift4.2 计算两个日期之间的时间间隔多少天

由于最近项目需求,需要计算时间的柱壮图进度,通过开始时间,当前时间,完成时间来求取时间进度。

思路:通过获取开始时间天数,然后获取完成时间天数和当前时间天数(iOS时间是从1970年还是计数的) 与之相减,然后再计算进度比例进行显示。

那么需要获取开始时间与完成时间,当前时间与完成时间之间的时间间隔。主要是使用NSCalendar的dateComponents来实现的:

NSCalendar.current.dateComponents(Set<Calendar.Component>, from: Date, to: Date)

具体实现方法如下:

func dateInterval(startTime:String,endTime:String) -> Int{
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy/MM/dd"
    guard let date1 = dateFormatter.date(from: startTime),
          let date2 = dateFormatter.date(from: endTime) else {
        return -1
    }
    let components = NSCalendar.current.dateComponents([.day], from: date1, to: date2)
    //如果需要返回月份间隔,分钟间隔等等,只需要在dateComponents第一个参数后面加上相应的参数即可,示例如下:
//    let components = NSCalendar.current.dateComponents([.month,.day,.hour,.minute], from: date1, to: date2)
    return components.day!
}

由于日期格式使用的是yyyy/MM/dd 需要输入带/的日期String。如需yyyy-MM-dd格式需作相应修改。

注意:如果需要求分钟间隔dateFormat需要设置到分钟位。

    原文作者:星光uoin
    原文地址: https://blog.csdn.net/qq_37269542/article/details/88419127
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞