检查一个NSDate是否大于另一个

Jul*_*les 45 objective-c nsdate

if (datStartDate > datEndDate) {
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.我知道有一个isEqual,等等,但我怎么表现"大于"?

两者都有NSDate.

dan*_*aby 138

我知道最简单的方法是:

if( [firstDate timeIntervalSinceDate:secondDate] > 0 ) {
Run Code Online (Sandbox Code Playgroud)

其他答案涵盖比较:,想添加一些味道;).

  • 聪明的主意:) +1 (3认同)

Vla*_*mir 30

要比较日期使用-compare:方法:

返回值如果:

  • 接收者和另一个日子完全相同, NSOrderedSame
  • 接收器的时间晚于anotherDate, NSOrderedDescending
  • 接收器的时间早于另一个日期, NSOrderedAscending.


Kev*_*tts 19

关于什么...

if ([datStartDate earlierDate: datEndDate] == datStartDate) {
    // datStartDate is earlier
} else {
    // datEndDate is earlier
}
Run Code Online (Sandbox Code Playgroud)


mar*_*ton 12

正如你有NSDates:

NSDate *datStartDate = [NSDate dateWithString:@"2010-10-01 03:00:00 +0900"];
NSDate *datEndDate   = [NSDate dateWithString:@"2010-10-01 04:00:00 +0900"];

if ( ([datStartDate compare:datEndDate]) == NSOrderedDescending ) {
    ...
}
Run Code Online (Sandbox Code Playgroud)