[英]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.