2009-11-26 3 views
0

У меня есть следующий код:Количество недель в месяц

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]); 

Он печатает вывод, такие как:

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

я на самом деле не нужно количество месяцев до даты, но общая от количества недель, есть ли в любом случае я могу изменить код, чтобы сделать это? Я не хочу просто предполагать, что 1 месяц = ​​4 недели, поскольку это, несомненно, будет неправильным.

С наилучшими пожеланиями

ответ

2

ли не работать, чтобы просто использовать:

unsigned int unitFlags = NSWeekCalendarUnit; 

?

+0

Да, это так. :) – Pascal