【发布时间】:2019-07-16 00:49:33
【问题描述】:
如何从给定的输入日期获得准确的完成天数
func floatDifferenceDays() -> Double {
let current = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let inputDate : String = "2018-07-15 05:46:12"
let input = dateFormatter.date(from: inputDate)
var result = current.timeIntervalSince(input!)
result = result / 86400
return result
}
它为零。从 datecomonents.day 到 31 天的循环,然后递增到 Month 和 year。
如何获得不包括年月的循环发生的天数。
如果给定 inputdate 从当前日期起 12 小时后,它应该返回 0.5 天完成
【问题讨论】:
-
DateComponents不会提供小数天 - 您需要检索小时数,然后除以 24。 -
@Paulw11 我用解决方案更新了我的问题!它的全部需求但需要知道的是有效的方法
-
除以 86400 不是一个好主意 - 它不考虑夏令时的变化。最好从日期组件中检索小时。
-
@Paulw11 就我而言,夏令时是一个例外!但是与日光相关的未来参考,那么您的观点是绝对正确的。
-
为什么要把秒数除以86400?除非您想知道自 1970 年 1 月 1 日以来的天数,否则这是没有意义的。
标签: ios swift date nsdateformatter