【发布时间】:2011-11-14 10:40:44
【问题描述】:
我有 2 个NSDate 对象,第一个设置为提前一个月,第二个设置为今天。
我想检查今天是否在(更大)之后,然后是前一个月的对象。
我该怎么做?
【问题讨论】:
我有 2 个NSDate 对象,第一个设置为提前一个月,第二个设置为今天。
我想检查今天是否在(更大)之后,然后是前一个月的对象。
我该怎么做?
【问题讨论】:
您可以使用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;
}
【讨论】:
阅读Date and Time Programming Guide 很多 Date & Time 概念(以及 Cocoa 是如何处理它们的)这里都有详细的解释,真的很值得一读。
另外,在NSDate class Reference, you can find a dedicated section“比较日期”中用于比较两个日期的所有方法。所以你应该使用laterDate: 或earlierDate: 方法来完全回答你的问题。您还可以使用timeIntervalSinceDate: 方法并检查返回的时间间隔的符号(再次参见有关此的文档)
一般来说,请不要犹豫阅读文档,因为所有内容都已在其中详细解释,如您所见,这些链接
【讨论】:
NSDate* earlierDate = [aDate earlierDate:anotherDate];
返回值 接收者和另一个日期中较早的一个,使用 timeIntervalSinceDate: 确定。如果receiver和anotherDate表示相同的日期,则返回receiver。
【讨论】:
转到此链接:
否则,将您的日期转换为双倍并进行比较。所有相关功能都在这个链接中。
【讨论】: