Как определить, находится ли NSDate в заданном диапазоне?

Итак, у меня возникли трудности (без каламбура), чтобы определить, находится ли NSDate в определенном диапазоне. Представьте себе это: запланированное посещение с 17:00 до 18:00. Я хочу узнать, находится ли запланированный визит в пределах +/- 15 минут от текущего времени. Таким образом, мой безопасный диапазон составляет с 16:45 до 18:15. Как я могу узнать, находится ли запланированный визит в пределах или вне диапазона? Вот код, который у меня есть, он вообще не работает ...

- (BOOL)isInScheduledRange {
//    NSLog(@"Start: %f", [self.start timeIntervalSinceNow]);
//    NSLog(@"End: %f", [self.end timeIntervalSinceNow]);
//    
//    if (([self.start timeIntervalSinceNow] >= -900) && ([self.end timeIntervalSinceNow] <= 3600)) {
//        NSLog(@"In Range");
//        
//        return YES;
//    }
//    
    NSDate *now = [[NSDate alloc] init];

//    if ((([self.start timeIntervalSinceDate:now] >= -900) && ([self.start timeIntervalSinceDate:now] <= 900)) && (([self.end timeIntervalSinceDate:now] <= -900) && ([self.end timeIntervalSinceDate:now] >= 900))) {
//        NSLog(@"In Range");
//    }

    NSLog(@"%@; %@; %@", now, self.start, self.end);
//    NSLog(@"%@; %@", [self.start timeIntervalSinceDate:now], [self.end timeIntervalSinceDate:now]);

    if ((([self.start timeIntervalSinceDate:now] >= -900) && ([self.start timeIntervalSinceDate:now] <= 0)) && (([self.end timeIntervalSinceDate:now] >= 0) && ([self.end timeIntervalSinceDate:now] <= 900))) {
        NSLog(@"In Range");
    }

    return NO;

    [now release];
}

Буду признателен за помощь. У меня проблемы с расчетом этого времени.

Отдельно хочу отметить, что я ненавижу иметь дело со временем, независимо от того, с какой платформой я работаю ...

6
задан Gup3rSuR4c 7 April 2011 в 01:16
поделиться