Vous pouvez comparer les composants de date:
NSDateComponents *otherDay = [[NSCalendar currentCalendar] components:NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:aDate];
NSDateComponents *today = [[NSCalendar currentCalendar] components:NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:[NSDate date]];
if([today day] == [otherDay day] &&
[today month] == [otherDay month] &&
[today year] == [otherDay year] &&
[today era] == [otherDay era]) {
//do stuff
}
Edit:
J'aime stefan la méthode de plus, je pense que cela rend plus propre et plus compréhensible si l'énoncé:
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *components = [cal components:(NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:[NSDate date]];
NSDate *today = [cal dateFromComponents:components];
components = [cal components:(NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:aDate];
NSDate *otherDate = [cal dateFromComponents:components];
if([today isEqualToDate:otherDate]) {
//do stuff
}
Chris, j'ai intégré votre suggestion. J'ai eu à le regarder jusqu'à quelle époque a été, donc, pour quelqu'un d'autre qui ne le connaissent pas, il fait la distinction entre BC et AD. Ceci est probablement inutile pour la plupart des gens, mais il est facile de vérifier et ajoute un certain degré de certitude, donc je l'ai inclus. Si vous allez pour la vitesse, ce n'est probablement pas une bonne méthode, de toute façon.