Entonces, estoy teniendo un momento difícil (sin juego de palabras) para encontrar si un NSDate está dentro de un rango específico. Considere esto: una visita programada entre las 5:00 p.m. y las 6:00 p.m. Quiero encontrar si la visita programada está dentro de +/- 15 minutos de la hora actual. Por lo tanto, mi rango seguro es de 4:45 PM a 6:15 PM. ¿Cómo puedo averiguar si la visita programada está dentro o fuera del rango? Aquí está el código que tengo hasta ahora, que no funciona en absoluto ...¿Cómo encontrar si un NSDate está dentro de un rango específico?
- (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];
}
Agradecería un poco de ayuda. Estoy teniendo dificultades con este cálculo de tiempo.
En una nota aparte, no me gusta tratar con el tiempo sin importar la plataforma que estoy trabajando ...
Esta es una mejor respuesta que la mía. – Moshe
Esto funcionó, y parece que mi primer intento comentado fue el más cercano. ¡Gracias por la ayuda! – Gup3rSuR4c