2010-10-01 6 views

Répondre

132

La méthode la plus simple est que je suis au courant:

if([firstDate timeIntervalSinceDate:secondDate] > 0) { 

Les autres réponses couvrent comparer :, voulait ajouter un peu de saveur;) .

+3

idée intelligente :) +1 – lukya

+1

beaucoup plus simple que l'utilisateur NSDate comparer: bien fait! –

+0

Ouais, merci. +1 – fnc12

28

Pour comparer les dates d'utiliser la méthode -compare::

Valeur de retour:

  • Le récepteur et anotherDate sont exactement égaux entre eux, NSOrderedSame
  • Le récepteur est plus tard en time than anotherDate, NSOrderedDesc se terminant
  • Le récepteur est plus tôt dans le temps que anotherDate, NSOrderedAscending.
11

Comme vous l'avez NSDates:

NSDate *datStartDate = [NSDate dateWithString:@"2010-10-01 03:00:00 +0900"]; 
NSDate *datEndDate = [NSDate dateWithString:@"2010-10-01 04:00:00 +0900"]; 

if (([datStartDate compare:datEndDate]) == NSOrderedDescending) { 
    ... 
} 
+0

Construire des chaînes avec 'langage naturel' est maintenant complètement dépréciée et ce ne compilera pas. – Lewis42

17

... Qu'en est-

if ([datStartDate earlierDate: datEndDate] == datStartDate) { 
    // datStartDate is earlier 
} else { 
    // datEndDate is earlier 
} 
+0

Merci beaucoup :) – Supertecnoboff

2

Swift 2 version de réponse acceptée:

if firstDate.timeIntervalSinceDate(secondDate) > 0 { 
    // firstDate is greater (further in the future) than secondDate 
} 
Questions connexes