我有2个NSDate对象显示24小时。有没有办法可以减去这两次并将结果放在标签中。我搜索了一种方法,但找不到方法。我唯一能找到的是用timeIntervalFromDate方法将它覆盖到一个double,它返回一个double,我需要24小时表示。
答案 0 :(得分:1)
它只返回一个NSTimeInterval
,即typedef double
NSTimeInterval是一个以秒为单位的表示。
进行数学运算以了解小时数如何在x秒内完成,您只需将重新调整的间隔分成3600秒并对结果进行舍入。
我已经构建了一个简单的扩展,可以在swift中用于帮助进行日历计算,你可以在这里找到它:AFSwiftDateExtension
答案 1 :(得分:0)
此功能可以解决您的问题:
func hoursFrom(earlierDate : NSDate, laterDate:NSDate) -> Int
{
return NSCalendar.currentCalendar().components(NSCalendarUnit.CalendarUnitHour, fromDate: earlierDate, toDate: laterDate, options: nil).hour
}
答案 2 :(得分:0)
extension NSTimeInterval {
var time:String {
return String(format:"%02d:%02d:%02d", Int((self/3600.0)%24), Int((self/60.0)%60), Int((self)%60))
}
}
println(30.time) // "00:00:30"
println(60.time) // "00:01:00"
println(600.time) // "00:10:00"
println(3600.time) // "01:00:00"