if (datStartDate > datEndDate) {
Cela ne semble pas fonctionner. Je sais qu’il y a un isEqual
, etc., mais comment est-ce que je fais “est plus grand que”?
Il y a les deux NSDate
.
La méthode la plus simple que je connaisse est la suivante:
if( [firstDate timeIntervalSinceDate:secondDate] > 0 ) {
Les autres réponses couvrent la comparaison: veulent append un peu de saveur;).
Pour comparer les dates, utilisez -compare:
méthode:
Valeur de retour si:
- Le récepteur et anotherDate sont exactement égaux l’un à l’autre, NSOrderedSame
- Le récepteur est plus tard dans le temps qu’une autre date, NSOrderedDescending
- Le récepteur est plus tôt que toute autre date, NSOrderedAscending .
Qu’en est-il de…
if ([datStartDate earlierDate: datEndDate] == datStartDate) { // datStartDate is earlier } else { // datEndDate is earlier }
Comme vous avez des NSDates :
NSDate *datStartDate = [NSDate dateWithSsortingng:@"2010-10-01 03:00:00 +0900"]; NSDate *datEndDate = [NSDate dateWithSsortingng:@"2010-10-01 04:00:00 +0900"]; if ( ([datStartDate compare:datEndDate]) == NSOrderedDescending ) { ... }
Swift 2 version de la réponse acceptée:
if firstDate.timeIntervalSinceDate(secondDate) > 0 { // firstDate is greater (further in the future) than secondDate }
if ([startDate compare:endDate] == NSOrderedAscending) { NSLog(@"startDate is EARLIER than endDate"); }