Gardez à l'esprit que NSDate ne représente pas un "jour" sous quelque forme que ce soit, juste un point dans le temps. Vous devrez faire un peu de travail avec NSDateComponents, converti en utilisant un NSCalendar (généralement le calendrier par défaut de l'utilisateur) pour déterminer les valeurs NSDate de début et de fin, et comparez-les pour comparer votre intervalle de temps.
Je commencerais par prendre le NSDate qui tombe dans votre journée, et le convertir en un NSDateComponents, mais sans heures, minutes ou secondes. Voici un rapide (non testé) par exemple pour vous aider à démarrer:
NSDateComponents *comps = [[NSCalendar currentCalendar] components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]];
NSDateComponents *day = [[[NSDateComponents alloc] init] autorelease];
[day setDay:1];
NSDate *start = [[NSCalendar currentCalendar] dateFromComponents:comps];
NSDate *end = [[NSCalendar currentCalendar] dateByAddingComponents:day toDate:start options:0];
Ensuite, vous pouvez comparer l'intervalle de temps comme suggéré par M. Jalkut (ou une autre méthode, NSDate peut travailler avec NSTimeIntervals en quelques façons différentes). Je passerais certainement un peu de temps à regarder NSCalendar et NSDateComponents dans les documents, vous pourriez trouver une meilleure méthode que ce que je suggère pour ce que vous devez faire.
le point de Peter semble valide. Je retire ma réponse si les gens sont d'accord qu'il est préférable d'utiliser NSCalendar pour faire ce genre de comparaison de ce jour, au lieu d'essayer de l'interpréter sur les propres comme je l'ai suggéré. – danielpunkass
Hey Peter, votre message est très utile. Merci encore d'avoir partagé votre sagesse. Daniel, votre poste a été utile aussi bien pour d'autres questions que je traite qui sont sensibles au temps, donc merci. Le message de Peter aborde directement le sujet en question. Merci les amis. –