дата в определенном диапазоне с NSOrderedAscending и NSOrderedDescending - PullRequest
0 голосов
/ 06 июня 2011

У меня есть этот код:

NSComparisonResult compareStart = [firstDate compare: dateSelected]; 
NSComparisonResult compareEnd = [secondDate compare: dateSelected];

if (((compareStart == NSOrderedAscending) || (compareStart == NSOrderedSame))
                   && (compareEnd == NSOrderedDescending)) 

, но он не записывается в «если», когда firstDate = dateSelected или secondDate = dateSelected ... почему ??

1 Ответ

2 голосов
/ 06 июня 2011

Вы уверены, что когда firstDate равно dateSelected выбранная дата раньше, чем secondDate? В настоящее время ваша логика: firstDate <= dateSelected <secondDate. Если вы хотите firstDate <= dateSelected <= secondDate, то вам нужно реализовать код следующим образом: </p>

NSComparisonResult compareStart = [firstDate compare: dateSelected]; 
NSComparisonResult compareEnd = [secondDate compare: dateSelected];

if ( (compareStart == NSOrderedAscending || compareStart == NSOrderedSame)
                   && (compareEnd == NSOrderedDescending || compareEnd == NSOrderedSame)) {
  // some code
}

Обновление:

Для сравнения двух NSDate без учета времени см .: Сравнение двух NSDates и игнорирование компонента времени

...