¿Encontrar Nsdate en un nsarrray que tiene una hora del día después de una hora determinada (por ejemplo, 8 p.m.)?

StackOverflow https://stackoverflow.com/questions/5367502

Pregunta

¿Hay una forma rápida en el objetivo-C de identificar NSDate en un NsArray que tenga una hora del día después de un tiempo determinado (por ejemplo, 8 p.m.)?

No puedo ver de todos modos, aparte de caminar manualmente, a través de cada nsdate en la matriz y luego usar nsdatecomponents para romper la hora/minuto/segundo ... ni siquiera seguro si hay una manera simple de pasar el tiempo de un NSDATE en Una moda que representa una fracción de 24 horas, ya que esto podría ayudar un poco. (por ejemplo, 6pm sería 18/24 = 0.75 en este caso)

¿Fue útil?

Solución

No hay necesidad de entrar NSDateComponents.

NSTimeInterval interval = [date1 timeIntervalSinceDate:date2];
if (interval > 0) {
    // date2 is earlier
} else {
    // date1 is earlier
}

Ahora puede representar su tiempo de destino (8 pm, por ejemplo) con date2 y comparar todas las fechas de matriz con eso.

Otros consejos

No he probado esto yo mismo, pero supongo

- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate

es lo que estás buscando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top