Tom*_*mer 3 compare nsdate swift
我想比较两个NSDates,但每个日期显示为"早于" 今天的日期.有任何想法吗?
let compareResult = self.todaysDate.compare(self.date)
if compareResult == NSComparisonResult.OrderedDescending {
println("Today is later than date2")
} else {
println("Future")
}
Run Code Online (Sandbox Code Playgroud)
获得"今日日期"
let todaysDate = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitMonth | .CalendarUnitYear | .CalendarUnitDay, fromDate: todaysDate)
let hour = components.hour
let minutes = components.minute
let month = components.month
let year = components.year
let day = components.day
println(todaysDate)
Run Code Online (Sandbox Code Playgroud)
这个印刷品是:
2014-11-12 14:48:48 +0000
Run Code Online (Sandbox Code Playgroud)
而"日期"的印刷品是:
2014-10-24 07:24:41 +0000
Run Code Online (Sandbox Code Playgroud)
这是在Parse.com服务器上.
谢谢
Tod*_*ick 10
我想也许你正在解释compare倒退的结果.看一下这个.每个asserts通行证:
let today = NSDate()
let tomorrow = today.dateByAddingTimeInterval(24 * 60 * 60)
let yesterday = today.dateByAddingTimeInterval(-24 * 60 * 60)
assert(today.compare(tomorrow) == .OrderedAscending) // today < tomorrow
assert(today.compare(yesterday) == .OrderedDescending) // today > yesterday
assert(today.compare(today) == .OrderedSame) // today == today
Run Code Online (Sandbox Code Playgroud)
Joh*_*pia 10
如果你想支持==,<,>,<=,或>=为NSDateS,你只需要声明这个地方:
public func ==(lhs: NSDate, rhs: NSDate) -> Bool {
return lhs === rhs || lhs.compare(rhs) == .OrderedSame
}
public func <(lhs: NSDate, rhs: NSDate) -> Bool {
return lhs.compare(rhs) == .OrderedAscending
}
extension NSDate: Comparable { }
Run Code Online (Sandbox Code Playgroud)
实施==和<允许Comparable推断出其他比较操作.
用法:
let date1 = NSDate()
let date2 = NSDate()
println(date2 > date1) // true
println(date2 < date1) // false
println(date2 == date2) // true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5518 次 |
| 最近记录: |