Мне кажется, я не совсем понимаю, что вы хотите сделать, но я попробую.
Предположим, у вас есть 2 NSDate
, назовите их date1
и date2
, и вы хотите отметить любые записи в массиве NSDate
, назовите его arrayOfDates
, которые находятся 2 NSDate
или нет, и сохраните значения YES
или NO
в другом массиве, назовите его boolValuesOfDates
. Затем попробуйте этот метод:
- (void)compareDatesOfArrayFromDate:(NSDate *)date1 toDate:(NSDate *)date2; {
NSDate * firstDate;
NSDate * secondDate;
if([date1 timeIntervalSinceDate:date2] >= 0){
firstDate = date2;
secondDate = date1;
}
else{
firstDate = date1;
secondDate = date2;
}
if(boolValuesOfDates != nil)
[boolValuesOfDates release]; // Release the YES/NO array for the new values.
boolValuesOfDates = [[NSMutableArray alloc] initWithCapacity:[arrayOfDates count]];
BOOL isInbetweenDates;
NSDate * curDate;
for(int i = 0; i < [arrayOfDates count]; i++){
curDate = [arrayOfDates objectAtIndex:i];
isInbetweenDates = NO;
if([curDate timeIntervalSinceDate:firstDate] >= 0){
if([curDate timeIntervalSinceDate:secondDate] <= 0){
isInbetweenDates = YES;
}
}
[boolValuesOfDates addObject:[NSNumber numberWithBool:isInbetweenDates]];
}
}
Этот метод проверяет порядок 2 введенных NSDate
, а затем сравнивает NSDate
в массиве, и, если они находятся между ними, помечает их YES
или NO
иначе. Надеюсь, что поможет!