120 votes

Comment puis-je calculer la différence entre deux dates?

Comment puis-je calculer les jours entre le 1er janvier 2010, et (par exemple), le 3 Février 2010?

245voto

dreamlax Points 47152
NSDate *date1 = [NSDate dateWithString:@"2010-01-01 00:00:00 +0000"];
NSDate *date2 = [NSDate dateWithString:@"2010-02-03 00:00:00 +0000"];

NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1];

int numberOfDays = secondsBetween / 86400;

NSLog(@"There are %d days in between the two dates.", numberOfDays);

85voto

somegeekintn Points 1536

Vous pouvez utiliser quelque chose comme ceci:

NSDateComponents *components;
NSInteger days;

components = [[NSCalendar currentCalendar] components: NSDayCalendarUnit 
        fromDate: startDate toDate: endDate options: 0];
days = [components day];

Je crois que cette méthode s'applique à des situations telles que les dates qui s'étendent sur un changement de l'heure d'été.

25voto

Chetan Points 13163
NSTimeInterval diff = [date2 timeIntervalSinceDate:date1]; // in seconds

date1 et date2 sont NSDate'.

Il est également à noter la définition de l' NSTimeInterval:

typedef double NSTimeInterval;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X