2 NSDate之间的比较



i有2个NSDate对象,第一个设置为一个月前,第二个设置为今天。我想检查今天是否在(大于)前一个月的对象之后。

我该怎么做呢?

可以使用NSDate的compare方法。例子:

switch ([dateOne compare:dateTwo]) {
case NSOrderedAscending:
    // dateOne is earlier in time than dateTwo
    break;
case NSOrderedSame:
    // The dates are the same
    break;
case NSOrderedDescending:
    // dateOne is later in time than dateTwo
    break;
}

多读日期和时间编程指南这里详细解释了时间概念(以及Cocoa如何处理它们),非常值得一读。

同样,在NSDate类引用中,你可以找到一个专门的"比较日期"部分,用于比较两个日期的所有方法。所以你应该用laterDate:earlierDate:方法来完全回答你的问题。您还可以使用timeIntervalSinceDate:方法并检查返回的时间间隔的符号(请再次参阅有关此的文档)

一般来说,不要犹豫阅读文档,因为所有都已经在那里详细解释了,正如您可以看到的,给定这些链接

NSDate* earlierDate = [aDate earlierDate:anotherDate];

接收器和另一个日期中较早的一个,使用timeIntervalSinceDate:确定。如果接收方和anotherDate表示相同的日期,则返回接收方。

进入此链接:

http://developer.apple.com/library/mac/文档/可可/引用/基金/类/NSDate_Class/引用/Reference.html

否则,将日期转换为double格式并进行比较。所有相关功能均在此链接

最新更新