2010-12-06 48 views
2

我正在使用下面的代碼來比較兩個日期(不是時間),也與時間,但它總是回報未來...任何幫助嗎?我怎麼能改變下面的代碼來做到這一點?日期操縱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; 
      } 

回答

2

[NSDate date]將使用當前日期和時間創建新日期對象。既然你在不同的時間創建了NSDate的兩個對象(儘管差異只有幾毫秒),這就是爲什麼它總是在未來返回。

我可以想出兩種方法來解決這個問題。

創建Date對象唯一的:

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

或者您可以使用NSTimeInterval返回時間(秒)differnce:

(NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate