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

本文介绍了一种在iOS项目中计算时间进度的方法,通过开始时间、当前时间和完成时间,利用NSCalendar的dateComponents功能,计算时间间隔,从而得出时间进度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

思路:通过获取开始时间天数,然后获取完成时间天数和当前时间天数(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需要设置到分钟位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值