检查一个NSDate是否大于另一个
if (datStartDate > datEndDate) {
这似乎并不奏效。 我知道有一个isEqual
等,但我该如何执行“是大于”?
有两个NSDate
。
我知道的最简单的方法是:
if( [firstDate timeIntervalSinceDate:secondDate] > 0 ) {
其他答案涵盖比较:想添加一些风味;)。
比较date使用-compare:
方法:
返回值如果:
- 接收者和另一个date完全相等, NSOrderedSame
- 接收者晚于其他date, NSOrderedDescending
- 接收者比另一个时间更早, NSOrderedAscending 。
关于什么…
if ([datStartDate earlierDate: datEndDate] == datStartDate) { // datStartDate is earlier } else { // datEndDate is earlier }
正如你有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 ) { ... }
Swift 2版本接受的答案:
if firstDate.timeIntervalSinceDate(secondDate) > 0 { // firstDate is greater (further in the future) than secondDate }