Ответ 1
Самый простой способ, который я знаю:
if( [firstDate timeIntervalSinceDate:secondDate] > 0 ) {
Другие ответы охватывают сравнение:, хотелось добавить некоторый вкус;).
if (datStartDate > datEndDate) {
Это не работает. Я знаю там isEqual
и т.д., Но как я могу выполнить "больше, чем"?
Есть как NSDate
.
Самый простой способ, который я знаю:
if( [firstDate timeIntervalSinceDate:secondDate] > 0 ) {
Другие ответы охватывают сравнение:, хотелось добавить некоторый вкус;).
Для сравнения дат используйте метод -compare:
:
Возвращаемое значение Если:
- Получатель и другое имя точно равные друг другу, NSOrderedSame
- Получатель позже чем другое, 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
}