Подтвердить что ты не робот

Проверка того, что один NSDate больше другого

if (datStartDate > datEndDate) {

Это не работает. Я знаю там isEqual и т.д., Но как я могу выполнить "больше, чем"?

Есть как NSDate.

4b9b3361

Ответ 1

Самый простой способ, который я знаю:

if( [firstDate timeIntervalSinceDate:secondDate] > 0 ) {

Другие ответы охватывают сравнение:, хотелось добавить некоторый вкус;).

Ответ 2

Для сравнения дат используйте метод -compare::

Возвращаемое значение Если:

  • Получатель и другое имя точно равные друг другу, NSOrderedSame
  • Получатель позже чем другое, NSOrderedDescending
  • Приемник раньше времени, чем другое, NSOrderedAscending.

Ответ 3

Как насчет...

if ([datStartDate earlierDate: datEndDate] == datStartDate) {
    // datStartDate is earlier
} else {
    // datEndDate is earlier
}

Ответ 4

Как вы 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 ) {
    ...
}

Ответ 5

версия принятого ответа Swift 2:

if firstDate.timeIntervalSinceDate(secondDate) > 0 {
    // firstDate is greater (further in the future) than secondDate
}