比较NSDate [英] Comparing NSDate

查看:80
本文介绍了比较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 >= for NSDates, 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 < lets Comparable 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆