2010-04-05 11 views
5

Tengo un objeto NSDate llamado 'dueDate'. Estoy tratando de encontrar la forma de mostrar si la fecha de vencimiento fue ayer o mañana. ¿Cómo voy a hacer esto?Comparación de NSDates

Respuesta

4

Para ver si una fecha es "mañana", haga algo como esto.

NSCalendar *calendar = [NSCalendar currentCalendar];  
    NSDate *currentDate = [NSDate date]; 
    NSDateComponents *comps = [[NSDateComponents alloc] init]; 
    // set tomorrow (0: today, -1: yesterday) 
    [comps setDay:1]; 
    NSDate *dateTomorrow = [calendar dateByAddingComponents:comps 
                toDate:currentDate 
                options:0]; 
    [comps release]; 

El resto debe ser bastante obvio.

HTH.

0
NSDate *today = [NSDate date]; 

NSTimeInterval dateTime; 


if ([visitDate isEqualToDate:today]) //visitDate is a NSDate 

{ 

NSLog (@"Dates are equal"); 

} 

dateTime = ([visitDate timeIntervalSinceDate:today]/86400); 

if(dateTime < 0) //Check if visit date is a past date, dateTime returns - val 

{ 

NSLog (@"Past Date"); 

} 

else 

{ 
NSLog (@"Future Date"); 

} 
+1

"isEqualToDate:" es un partido EXACTO. es decir: partido por debajo del segundo. esta prueba probablemente nunca sea VERDADERA. – Christ