【发布时间】:2018-01-08 20:39:26
【问题描述】:
我正在努力计算某些日期之间的天数。
我想计算距离新年的天数或分钟数。 我尝试了一种使用 dateComponents 在另一篇文章中看到的方法,但我无法计算。
如果有人可以提供帮助,我会非常高兴。
谢谢!
【问题讨论】:
-
还有哪些帖子?你尝试了什么?怎么没用?
-
您能否发布您尝试使用的代码?
我正在努力计算某些日期之间的天数。
我想计算距离新年的天数或分钟数。 我尝试了一种使用 dateComponents 在另一篇文章中看到的方法,但我无法计算。
如果有人可以提供帮助,我会非常高兴。
谢谢!
【问题讨论】:
查看您尝试提供的建议会很有帮助,但尽管如此,您可以使用 NSCalendar 的组件来完成此操作。
let calendar = Calendar.current
let startOfDay1 = calendar.startOfDay(for: date1)
let startOfDay2 = calendar.startOfDay(for: date2)
let components = calendar.dateComponents([.day], from: startOfDay1, to: startOfDay2)
您可以自定义上面的内容以从您的日期对象中获取更具体的分钟。
https://developer.apple.com/documentation/foundation/nscalendar/1407925-components
编辑:对于 Swift 4,您不需要桥接。您可以直接使用日历(上面的编辑代码)。 https://developer.apple.com/documentation/foundation/calendar/2293176-datecomponents
【讨论】:
NSCalendar?这是 Swift4,除非您有充分的理由这样做,否则您不应该使用 Foundation 数据类型。您应该使用Calendar 而不是NSCalendar。
startOfDay(for:) 不解决这个问题吗?我希望它返回一天的第一个 valid 日期,不一定是午夜。