簡體   English   中英

在將當前日期附加到其后比較時間字符串嗎?

[英]Compare time String after appending current Date to it?

很快,我有兩個時間串

let a = "12:03"
let b = "24:31" // = next day 00:31

如果今天的日期是2015-07-04,我想比較兩個這樣的日期

a (= 2015-07-04 12:03) vs b (= 2015-07-05 00:31)

並返回更早的日期時間

誰能教我最簡單的方法?

extension NSDate {
    var day: Int {
        return NSCalendar.currentCalendar().component(.CalendarUnitDay, fromDate: self)
    }
    var month: Int {
        return NSCalendar.currentCalendar().component(.CalendarUnitMonth, fromDate: self)
    }
    var year: Int {
        return NSCalendar.currentCalendar().component(.CalendarUnitYear, fromDate: self)
    }
}



let a = "12:03"
let hourA = (a.componentsSeparatedByString(":").first ?? "").toInt() ?? 0
let minuteA = (a.componentsSeparatedByString(":").last ?? "").toInt() ?? 0

let b = "24:31"
let hourB = (b.componentsSeparatedByString(":").first ?? "").toInt() ?? 0
let minuteB = (b.componentsSeparatedByString(":").last ?? "").toInt() ?? 0

let today = NSDate()   // or your reference date

let date1 = NSCalendar.currentCalendar().dateWithEra(1, year: today.year, month: today.month, day: today.day, hour: hourA, minute: minuteA, second: 0, nanosecond: 0)!
let date2 = NSCalendar.currentCalendar().dateWithEra(1, year: today.year, month: today.month, day: today.day, hour: hourB, minute: minuteB, second: 0, nanosecond: 0)!


let myEarlierDate = date1.earlierDate(date2)   // "Jul 5, 2015, 12:03 PM"

有比較功能可提供兩個日期之間的比較結果(第一個日期可以早於第二個日期,也可以相同或晚於第二個日期)。在您的情況下,第一個日期為“ a”,第二個日期為“ b”。

`let compareResult = a.compare(b)`

檢查compareResult可以是OrderedAscending / OrderedSame / OrderedDescending

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

然后使用.timeIntervalSinceDate()以秒為單位獲取兩個日期之間的時差,然后根據需要將其轉換為天/小時/分鍾/秒。 您可能會發現此鏈接很有用: 快速進行時間比較

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM