2009-11-26 16 views
0

je le code suivant:Nombre de semaines en mois

NSDate *dateNow = [[NSDate alloc] init]; 
NSTimeInterval timeDifference = [usersDate timeIntervalSinceDate:dateNow]; 
// Get the system calendar 
NSCalendar *sysCalendar = [NSCalendar currentCalendar]; 

// Create the NSDates 
NSDate *date1 = [[NSDate alloc] init]; 
NSDate *date2 = [[NSDate alloc] initWithTimeInterval:timeDifference sinceDate:date1]; 

// Get conversion to months, days, hours, minutes 
unsigned int unitFlags = NSWeekCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSSecondCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit; 

NSDateComponents *breakdownInfo = [sysCalendar components:unitFlags fromDate:date1 toDate:date2 options:0]; 

NSLog(@"Break down: %d Years, %d months, %d Weeks, %d days %d Hours, %d Minutes, %d Seconds", [breakdownInfo year], [breakdownInfo month], [breakdownInfo week], [breakdownInfo day], [breakdownInfo hour], [breakdownInfo minute], [breakdownInfo second]); 

Il imprime la sortie tels que:

Break down: 0 Years, 5 months, 3 Weeks, 4 days 2 Hours, 48 Minutes, 20 Seconds 

Je ne suis pas vraiment besoin le nombre de mois jusqu'à la date, mais le total du nombre de semaines, y at-il de toute façon je peux modifier le code pour le faire? Je ne veux pas simplement supposer que 1 mois = 4 semaines car cela serait sans doute faux.

Cordialement

Répondre

2

ça ne marche pas à utiliser simplement:

unsigned int unitFlags = NSWeekCalendarUnit; 

?

+0

Oui, c'est le cas. :) – Pascal