2009-06-09 9 views
3

Quelqu'un peut-il m'aider s'il vous plaît à comprendre comment vérifier si une date est du même jour qu'aujourd'hui. Je suppose que cela nécessiterait de créer un jour de calendrier à 0 heure du même jour dans le même fuseau horaire et de vérifier contre cela, mais jusqu'à présent mes tentatives m'ont confondu plus que n'importe quoi.Vérifier si une date est du même jour

Répondre

5

NSCalendar vous permet de traiter avec les jours de l'homme. Ainsi, vous pouvez mettre en œuvre une catégorie quelque chose comme ceci:

@implementation NSDate (IsItToday) 
- (BOOL)isToday { 
    NSUInteger desiredComponents = NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit; 
    NSDateComponents *myCalendarDate = [[NSCalendar currentCalendar] components:desiredComponents fromDate:self]; 
    NSDateComponents *today = [[NSCalendar currentCalendar] components:desiredComponents fromDate:[NSDate date]]; 
    return [myCalendarDate isEqual:today]; 
} 
@end 
+0

parfait, merci !!! En regardant le code, je ne vais pas me battre pour ne pas pouvoir l'obtenir par moi-même :) – dizy

-1

Vous devez prendre une bonne lecture à travers cette Dates and Times Programming Topics for Cocoa, mais quelque chose comme cela devrait fonctionner:

NSDate *today = [NSDate date]; 
NSTimeInterval difference = [today timeIntervalSinceDate:otherDate]; 
NSTimeInterval secondsPerDay = 24 * 60 * 60; 
if (difference < secondsPerDay) 
{ 
    //same day as today 
} 
+0

qui vérifie 24 heures, pas si sa la même date – dizy

+0

Votre réponse est fausse (la question demande jours civils, pas des intervalles de temps). S'il vous plaît lire la question attentivement avant de dire à quelqu'un de rtfm! – Christoph

Questions connexes