Tengo una NSDate
que debo comparar con otras dos NSDate
e intento con NSOrderAscending
y NSOrderDescending
pero ¿si mi fecha es igual en otras dos fechas?
Ejemplo: si tengo un myDate = 24/05/2011
y otros dos que son uno = 24/05/2011
y dos, 24/05/2011
¿qué puedo usar?
objective-c
ios
nsdate
CiclismoEsMejor
fuente
fuente
Respuestas:
Según la documentación de Apple de
NSDate compare:
En otras palabras:
Tenga en cuenta que podría ser más fácil en su caso particular leer y escribir esto:
Consulte la documentación de Apple sobre este .
fuente
NSDateComponents
Después de buscar mucho en stackoverflow y en la web, tengo que concluir que la mejor manera de hacerlo es así:
También puede cambiarlo a diferencia entre horas.
¡Disfrutar!
Editar 1
Si desea comparar la fecha con el formato de dd / MM / aaaa solamente, debe agregar las siguientes líneas entre
NSDate* currentdate = [NSDate date];
&&NSTimeInterval distance
fuente
Supongo que está preguntando cuál es el valor de retorno en la función de comparación.
Si las fechas son iguales entonces regresando
NSOrderedSame
Si es ascendente (2do argumento> 1er argumento) regresa
NSOrderedAscending
Si es descendente (2nd arg <1st arg) return
NSOrderedDescending
fuente
No sé exactamente si ha preguntado esto, pero si solo desea comparar el componente de fecha de un NSDate, debe usar NSCalendar y NSDateComponents para eliminar el componente de tiempo.
Algo como esto debería funcionar como una categoría para NSDate:
fuente
NSDate
en realidad representa un intervalo de tiempo en segundos desde una fecha de referencia (creo que el 1 de enero de 2000 UTC). Internamente, se usa un número de punto flotante de doble precisión, por lo que es muy poco probable que dos fechas arbitrarias se comparen de la misma manera, incluso si son el mismo día. Si desea ver si una fecha en particular cae en un día en particular, probablemente necesite usarNSDateComponents
. p.ejfuente
Verifique la siguiente función para la comparación de fechas, primero cree dos objetos NSDate y pase a la función: Agregue las siguientes líneas de código en viewDidload o según su escenario.
aquí está la función
Simplemente cambie la fecha y pruebe la función anterior :)
fuente