Итак, мне трудно (без каламбура) найти, находится ли 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];
}
Буду признателен за помощь. У меня возникли трудности с этим расчетом времени.
Отдельно хочу отметить, что я ненавижу иметь дело со временем, независимо от того, с какой платформой я работаю...