2010-12-06 15 views
2

私は次のコードを使用して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]は、現在の日付と時刻を使用して新しい日付オブジェクトを作成します。あなたは異なる時間に2つのオブジェクト(なぜならミリ秒の差しかない)を作成しているので、将来それがいつも戻ってくるのです。

私はこれを修正する2つの方法が考えられます。

だけでは日付オブジェクトを作成します。

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

か、秒単位で時間differnceを返すNSTimeIntervalを使用することができます。

(NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate