【发布时间】:2018-03-22 23:14:35
【问题描述】:
我有 2 次存储为字符串,我试图以小时和分钟为单位找出它们之间的差异并将其显示在标签中,我很确定我必须使用 DateFormatter 从字符串中获取日期,但从在那一点上,我迷失了获得差异的最佳方法,我读过的一些东西说使用间隔,另一些说使用日历。我似乎无法提出任何对我来说很清楚的事情。
var dailyTimeOut: NSDate {
get{
let formatter = DateFormatter()
formatter.dateStyle = .medium
return formatter.date(from: finishTimeLabel.text!)! as NSDate
}
}
func calculateHours() {
let interval = dailyTimeOut.timeIntervalSince(dailyTimeIn as Date)
// print("\(stringFromTimeInterval(interval: interval))")
let totalTime = stringFromTimeInterval(interval: interval)
totalTimeLabel.text = totalTime
}
func stringFromTimeInterval(interval: TimeInterval) -> String {
let interval = Int(interval)
let minutes = (interval / 60) % 60
let hours = (interval / 3600)
return String(format: "%02d:%02d", hours, minutes)
}
【问题讨论】:
-
FWIW,我建议从您的 Swift 代码中删除
NSDate。使用Date并仅在需要时桥接到NSDate。 -
顺便说一句,我也不喜欢计算属性从标签中提取值。这似乎将模型和视图混为一谈。
标签: swift date time swift4 intervals