入力された日付が特定の日付よりも新しいかを調べるたいことがありましたので、その方法をメモします。
【特定の日付を指定してNSDateを作成】
まず、特定の日付を指定してNSDateを作成します。
// NSCalendar を取得 NSCalendar* calendar = [NSCalendar currentCalendar]; // NSDateComponents を作成して情報を設定 NSDateComponents* components = [[NSDateComponents alloc] init]; components.year = 2011; components.month = 10; components.day = 5; // NSCalendar でNSDateComponents を NSDate に変換 NSDate* specialDate = [calendar dateFromComponents:components];
【日付の比較】
作成したNSDateを使って、下記の方法で日付の比較が出来ます。
// 2つの日付を準備 NSDate *currentDate = [NSDate date];// 現在の日付を取得 NSDate *compareDate = specialDate;// 先ほど作成した日付 // 日付を比較 NSComparisonResult result = [currentDate compare:compareDate]; switch(result) { case NSOrderedSame: // 一致したとき NSLog(@"同じ日付です"); break; case NSOrderedAscending: // currentDateが小さいとき NSLog(@"異なる日付です(currentDateのが小)"); break; case NSOrderedDescending: // currentDateが大きいとき NSLog(@"異なる日付です(currentDateのが大)"); break; }