Estoy interesado en crear un método para encontrar si la fecha actual cae entre ciertas horas en un día determinado. Es para un programa de programación, así que quiero encontrar qué evento está ocurriendo en el momento actual. Todos los días tienen los mismos tiempos: 820-900, 900-940, 940-1020, etc. Como esto debe hacerse en un día determinado, no sé cómo crear un NSDate con un cierto tiempo. Creo que esto podría hacerse con NSTimeInterval, pero no estoy seguro de cómo crear una instancia de eso.NSFecha entre dos NSDates dados
Respuesta
Esto no es perfecta, pero se puede usar [NSDate comparar:] revisar la fecha contra los dos límites:
NSDate *firstDate = ...
NSDate *secondDate = ...
NSDate *myDate = [NSDate date];
switch ([myDate compare:firstDate]) {
case NSOrderedAscending:
NSLog(@"myDate is older");
// do something
break;
case NSOrderedSame:
NSLog(@"myDate is the same as firstDate");
// do something
break;
case NSOrderedDescending:
NSLog(@"myDate is more recent");
// do something
break;
}
switch ([myDate compare:secondDate]) {
case NSOrderedAscending:
NSLog(@"myDate is older");
// do something
break;
case NSOrderedSame:
NSLog(@"myDate is the same as secondDate");
// do something
break;
case NSOrderedDescending:
NSLog(@"myDate is more recent");
// do something
break;
}
O más brevemente:
BOOL between = NO;
if (([myDate compare:firstDate] == NSOrderedDescending) &&
([myDate compare:secondDate] == NSOrderedAscending)) {
between = YES;
}
Estoy seguro de que hay una mejor forma de hacer una comparación compleja de fechas, pero esto debería funcionar.
Eche un vistazo a - [NSCalendar components: fromDate:]. Le permitirá "descomponer" una fecha en sus diversos componentes, y luego puede, en este caso, mirar la hora y el minuto.
La manera más fácil de hacer esto sería usar -timeIntervalSinceReferenceDate
para convertir cada una de sus fechas en un valor tipeado NSTimeInterval
, que en realidad es solo double
.
NSTimeInterval rightNow = [[NSDate date] timeIntervalSinceReferenceDate];
A partir de ahí, determinar si una fecha es de entre dos fechas dadas es sólo una cuestión de comparaciones numéricas simples.
Si necesita convertir una representación de cadena de una fecha a una instancia NSDate para recuperar un intervalo de tiempo, utilice NSDateFormatter.
Si necesita crear una fecha a partir de componentes de fecha conocidos, use NSCalendar. (es decir, usted sabe que el año es 2010, el mes es 4 y el día es 12, puede usar los componentes de NSCalendar para generar una instancia NSDate a través del método -dateFromComponents:
).
Como Ben indicado, interfaz del componente de NSCalendar puede utilizarse también para suss la hora minuto & para determinar si está en un rango (que al parecer ser un uso atípico en que más eventos no ocurren todos los días al mismo tiempo ... pero ... claro ... ¡hay razones para hacerlo también!)
- 1. Diferencia entre dos NSDates
- 2. Comparar dos NSDates
- 3. Java Generar número aleatorio entre dos valores dados
- 4. Crear un nuevo NSDate combinando dos NSDates
- 5. NSFecha de la cadena
- 6. Comparar dos NSDates para la misma fecha/hora
- 7. Obtener todos los NSDates ENTRE startDate y endDate
- 8. Comparación de NSDates
- 9. Dados: Simulando un juego de Dados
- 10. clasificar un NSArray de NSDates
- 11. Comparando el tiempo de dos NSDates, ignorando el componente de fecha
- 12. área de intersección entre dos círculos
- 13. ¿La forma más simple de recorrer dos NSDates en el iPhone?
- 14. ¿Cómo verificar qué día de la semana es (es decir, martes, viernes?) Y comparar dos NSDates?
- 15. Obtener una matriz de futuros NSDates
- 16. ¿Ángulo entre dos vectores 2d, diferencia entre dos métodos?
- 17. Pruebe si Convert.ChangeType funcionará entre dos tipos
- 18. Igualdad entre dos enumerables
- 19. 'Diferencia' entre dos cuaterniones
- 20. diferencia entre dos matrices
- 21. Comunicación entre dos hilos
- 22. ¿Posición entre dos puntos?
- 23. Diferencia entre dos mapas
- 24. Ruta entre dos nodos
- 25. Reconocimiento de valor nominal de los dados
- 26. ¿Cuál es la forma más rápida de verificar si dos números dados son coprime?
- 27. Comprobando si dos números son permutaciones entre sí?
- 28. Bash - Diferencia entre dos listas
- 29. Resta entre dos consultas sql
- 30. error relativo entre dos matrices
Ningún ejemplo. :(:( – bluefloyd8