2010-04-05 13 views
5

Ich habe ein NSDate-Objekt namens 'dueDate'. Ich versuche herauszufinden, ob das Fälligkeitsdatum gestern oder morgen ist. Wie würde ich darüber gehen?Vergleichen von NSDates

Antwort

4

Um zu sehen, ob ein Datum "morgen" ist, machen Sie so etwas.

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]; 

Der Rest sollte ziemlich offensichtlich sein.

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:" ist eine genaue Übereinstimmung. zB: Untersekundenspiel. Dieser Test wird wahrscheinlich niemals WAHR sein. – Christ