if (datStartDate > datEndDate) {
Esto no parece funcionar. Sé que hay un isEqual
, etc., pero ¿cómo realizo "es mayor que"?Comprobando si un NSDate es mayor que otro
Hay ambos NSDate
.
if (datStartDate > datEndDate) {
Esto no parece funcionar. Sé que hay un isEqual
, etc., pero ¿cómo realizo "es mayor que"?Comprobando si un NSDate es mayor que otro
Hay ambos NSDate
.
El método más fácil Soy consciente es:
if([firstDate timeIntervalSinceDate:secondDate] > 0) {
Las otras respuestas cubren comparan :, quería añadir algo de sabor;) .
la comparación de fechas utilizan -compare:
método:
Valor devuelto Si:
- El receptor y anotherDate son exactamente iguales entre sí, NSOrderedSame
- El receptor es tarde en tiempo que otra fecha, NSOrderedDesc terminando
- El receptor es anterior en el tiempo que anotherDate, NSOrderedAscending.
Como usted tiene NSDates:
NSDate *datStartDate = [NSDate dateWithString:@"2010-10-01 03:00:00 +0900"];
NSDate *datEndDate = [NSDate dateWithString:@"2010-10-01 04:00:00 +0900"];
if (([datStartDate compare:datEndDate]) == NSOrderedDescending) {
...
}
La construcción de cadenas con 'lenguaje natural' está ahora totalmente obsoleto y esto no va a compilar. – Lewis42
... ¿Qué hay de
if ([datStartDate earlierDate: datEndDate] == datStartDate) {
// datStartDate is earlier
} else {
// datEndDate is earlier
}
Muchas gracias :) – Supertecnoboff
Swift versión 2 de la respuesta aceptada:
if firstDate.timeIntervalSinceDate(secondDate) > 0 {
// firstDate is greater (further in the future) than secondDate
}
idea inteligente :) +1 – lukya
mucho más simple que el usuario NSDate compare: ¡bien hecho! –
Sí, gracias. +1 – fnc12