Comparaison d'un NSDate à [date NSDate]
Je suis en train d'essayer de forcer l'utilisateur à sélectionner une date dans le futur avec un sélecteur de date. J'ai bien évidemment utilisé les comparer: méthode, cependant, quand je fais le code suivant, même si c'est la même date que [NSDate date], il raconte l'exécute l'instruction if. Voici mon code:
if ([datePicker.date compare:[NSDate date]] == NSOrderedAscending) //If the picked date is earlier than today
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hmm, this date is earlier than today"
message:@"The date you've selected is earlier than today's date, please pick another"
delegate:nil
cancelButtonTitle:@"Okay, I'll pick another"
otherButtonTitles:nil];
//Show the alert
[alert show];
//Release the alert
[alert release];
}
source d'informationauteur skylerl
Vous devez vous connecter pour publier un commentaire.
Je ne connais pas la réponse à votre problème, mais la manière dont on pouvait le contourner.
Suffit d'utiliser la minimumDate propriété de la UIDatePickerc'est encore un beaucoup plus propre approche.
Vous pouvez utiliser
qui retourne un NSTimeInterval (juste un typedef pour un double, dans les unités de secondes) ce qui est positif pour l'avenir et négatif pour le passé.
Que le doc a dit, comparer fournit subsecond comparaison, de sorte que vous pouvez l'utiliser pour la force de leur date d'une journée complète, plus tard (au lieu de juste dans le futur).
Un objet NSDate contient à la fois une date ET une heure, donc il ya BEAUCOUP de dates avec le même jour, qui peuvent se situer avant ou après une autre date avec le jour même.
La
date
classe méthode retourne un objet date avec la date de la journée ET de l'heure.