if (datStartDate > datEndDate) {
Cela ne semble pas fonctionner. Je sais qu'il y a un isEqual
, etc., mais comment puis-je effectuer "est supérieur à"?Vérification si un NSDate est supérieur à un autre
Il y a les deux NSDate
.
if (datStartDate > datEndDate) {
Cela ne semble pas fonctionner. Je sais qu'il y a un isEqual
, etc., mais comment puis-je effectuer "est supérieur à"?Vérification si un NSDate est supérieur à un autre
Il y a les deux NSDate
.
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;) .
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.
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) {
...
}
Construire des chaînes avec 'langage naturel' est maintenant complètement dépréciée et ce ne compilera pas. – Lewis42
... Qu'en est-
if ([datStartDate earlierDate: datEndDate] == datStartDate) {
// datStartDate is earlier
} else {
// datEndDate is earlier
}
Merci beaucoup :) – Supertecnoboff
Swift 2 version de réponse acceptée:
if firstDate.timeIntervalSinceDate(secondDate) > 0 {
// firstDate is greater (further in the future) than secondDate
}
idée intelligente :) +1 – lukya
beaucoup plus simple que l'utilisateur NSDate comparer: bien fait! –
Ouais, merci. +1 – fnc12