2010-12-06 11 views
2

Ich benutze folgenden Code, um nur zwei Daten zu vergleichen (nicht die Zeit) und auch mit der Zeit, aber es gibt immer Zukunft ... jede Hilfe bitte Wie kann ich den folgenden Code ändern, um es zu tun?datum Manipulation in iphone sdk?

NSComparisonResult result = [[NSDate date] compare:[NSDate date]]; 

     switch (result) 
     { 
      case NSOrderedAscending: 
       NSLog(@" in future"); 


       break; 
      case NSOrderedDescending: 
       NSLog(@" in past"); 
       break; 
      case NSOrderedSame: 
       NSLog(@" in same"); 
       break; 
      } 

Antwort

2

[NSDate date] erstellt ein neues Datumsobjekt mit aktuellem Datum und Uhrzeit. Da Sie zwei Objekte von NSDate zu unterschiedlichen Zeiten erstellen (allerdings nur einen Unterschied von Millisekunden), kehrt sie deshalb immer wieder zurück.

Ich kann mir zwei Möglichkeiten vorstellen, dies zu beheben.

Datum erstellen Objekt Einzige:

NSDate *currentDate = [NSDate date]; 
NSComparisonResult result = [currentDate compare:currentDate]; 

Oder Sie können NSTimeInterval benutzen, die in Sekunden Zeit differnce zurück:

(NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate