比较NSDate [英] Comparing NSDate
本文介绍了比较NSDate的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想比较两个NSDates,但每个日期显示为早于 todays日期。任何想法?
让compareResult = self.todaysDate.compare(self.date)
if compareResult == NSComparisonResult.OrderedDescending {
println(Today is late than date2)
} else {
println(Future)
}
要获得todaysDate
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)
此打印件是:
2014-11-12 14:48:48 +0000
并且date的打印是:
2014-10-24 07:24:41 +0000
这是在Parse.com服务器。
感谢
解决方案如果您要支持
==
,<
,>
,<=
或> =
为NSDate
在这个地方声明: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 {}
实施
==
和<
c $ c> Comparable 推断其他比较运算符。
用法:
let date1 = NSDate()
let date2 = NSDate()
println(date2> date1)// true
println < date1)// true
println(date2 == date2)// true
I would like to compare two NSDates however every date shows as being "Earlier" than todaysDate. Any ideas?
let compareResult = self.todaysDate.compare(self.date) if compareResult == NSComparisonResult.OrderedDescending { println("Today is later than date2") } else { println("Future") }
To get "todaysDate"
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)
This print is:
2014-11-12 14:48:48 +0000
and the print for "date" is:
2014-10-24 07:24:41 +0000
This is on a Parse.com server.
Thanks
解决方案If you want to support
==
,<
,>
,<=
, or>=
forNSDate
s, you just have to declare this somewhere: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 { }
Implementing
==
and<
letsComparable
infer the other comparison operators.Usage:
let date1 = NSDate() let date2 = NSDate() println(date2 > date1) // true println(date2 < date1) // false println(date2 == date2) // true
这篇关于比较NSDate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文