获取两个nsdate之间的分钟和小时



假设我需要获取两个nsdate之间的小时和分钟。例如,一个日期比另一个晚3小时42分钟。我怎样才能同时得到时间的小时和分钟呢?根据这个问题,我尝试过这样的东西,但它不起作用:您不会同时得到小时和分钟。

我也试过使用nscalcalendar,但也没有成功。相反,它只给出了小时数和秒数,而不是一次测量。

任何想法?

Mac OS X 10.10 Yosemite引入了智能NSDateComponentsFormatter来显示18h 56m 4s等组件中的时间间隔

这段代码的结果是从午夜到现在的格式化时间间隔。

let calendar = NSCalendar.currentCalendar()
let midnight = calendar.startOfDayForDate(NSDate())
let timeinterval = NSDate().timeIntervalSinceDate(midnight)
let formatter = NSDateComponentsFormatter()
formatter.unitsStyle = .Abbreviated
formatter.stringFromTimeInterval(timeinterval)

间隔以秒为单位-这可以同时提供小时和分钟。算一算。

let hours = totalTime / 3600
let minutes = (totalTime % 3600) / 60

简单的数学很容易,不需要日历。

let now = NSDate()
let latest = NSDate(timeInterval: 3*3600+42*60, sinceDate: now)
let difference = latest.timeIntervalSinceDate(now)
let hours = Int(difference) / 3600
let minutes = (Int(difference) / 60) % 60

这将给出以小时和分钟为单位的间隔。注意:不要忘记转换为整数,因为NSTimeInterval是一个浮点类型。

最新更新