一尘不染

快速的时间比较

swift

题:

我需要比较2次-当前时间和设定时间。如果设定的时间是将来的时间,请找出剩余的分钟数,直到所说的未来时间为止。

其他资讯:

我目前正在使用

let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute, fromDate: date)
let hour = components.hour
let minutes = components.minute

我从关于SO的另一个答案中窃取了有关如何以Int格式获取当前时间的信息。然后,我将未来时间分为小时(Int)和分钟(Int)并进行比较…但是,当您越过小时障碍时,这变得很奇怪。


阅读 143

收藏
2020-07-07

共1个答案

一尘不染

您具有比较功能来比较2个NSDate来知道哪个是最新的。它返回NSCompareResults

enum NSComparisonResult : Int {
    case OrderedAscending
    case OrderedSame
    case OrderedDescending
}

从2 NSDate获取距离(以秒为单位),您具有.timeIntervalSinceDate()。然后,您知道如何转换为分钟,小时,…

let date1 : NSDate = ... 
let date2 : NSDate = ...

let compareResult = date1.compare(date2)

let interval = date1.timeIntervalSinceDate(date2)
2020-07-07