【问题标题】:Compare Between 2 NSDate比较 2 个 NSDate
【发布时间】:2011-11-14 10:40:44
【问题描述】:

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

我该怎么做?

【问题讨论】:

    标签: ios xcode nsdate


    【解决方案1】:

    您可以使用NSDate's compare method。示例:

    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;
    }
    

    【讨论】:

      【解决方案2】:

      阅读Date and Time Programming Guide 很多 Date & Time 概念(以及 Cocoa 是如何处理它们的)这里都有详细的解释,真的很值得一读。

      另外,在NSDate class Reference, you can find a dedicated section“比较日期”中用于比较两个日期的所有方法。所以你应该使用laterDate:earlierDate: 方法来完全回答你的问题。您还可以使用timeIntervalSinceDate: 方法并检查返回的时间间隔的符号(再次参见有关此的文档)

      一般来说,请不要犹豫阅读文档,因为所有内容都已在其中详细解释,如您所见,这些链接

      【讨论】:

        【解决方案3】:
        NSDate* earlierDate = [aDate earlierDate:anotherDate];
        

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

        【讨论】:

          【解决方案4】:

          转到此链接:

          http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html

          否则,将您的日期转换为双倍并进行比较。所有相关功能都在这个链接中。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-07-09
            • 2012-04-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多