栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Swift中计算两个日期之间的时差

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Swift中计算两个日期之间的时差

我最终为创建了一个自定义运算符Date:

extension Date {    static func - (lhs: Date, rhs: Date) -> TimeInterval {        return lhs.timeIntervalSinceReferenceDate - rhs.timeIntervalSinceReferenceDate    }}

使用此运算符,我现在可以在更抽象的级别上计算两个日期之间的差,而无需关心timeIntervalSinceReferenceDate或确切地知道参考日期是什么,并且也不会损失精度,
例如:

let delta = toDate - fromDate

显然,我并没有做太多改变,但是对我来说,它更具可读性和结果:Swift +已经为a Date和a 实现了运算符TimeInterval:

/// Returns a `Date` with a specified amount of time added to it.public static func + (lhs: Date, rhs: TimeInterval) -> Date

So it’s already supporting

Date + TimeInterval = Date

Consequently, it should also support

Date - Date = TimeInterval

我认为,这就是我对

-
操作符的简单实现所添加的内容。现在,我可以完全按照问题中的说明编写示例函数:

func computeNewDate(from fromDate: Date, to toDate: Date) -> Date         let delta = toDate - fromDate // `Date` - `Date` = `TimeInterval`     let today = Date()     if delta < 0 {         return today     } else {         return today + delta // `Date` + `TimeInterval` = `Date`     }}

很可能这是我目前尚不了解的一些缺点,我很想听听您对此的想法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636379.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号