I want to get weekofYear with date \'2014-12-31\' ,but it always return 1 not 52 here is my code:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSUIntege
An alternative approach is to use the yearForWeekOfYear property of the NSDateComponents instance. If the yearForWeekOfYear is after the year of the date passed to components:fromDate:, then it is week 52.
E.g.
NSCalendar *calendar = [NSCalendar currentCalendar];
NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekdayCalendarUnit | NSWeekOfMonthCalendarUnit | NSWeekOfYearCalendarUnit | NSYearForWeekOfYearCalendarUnit;
NSDateComponents *dateComponent = [calendar components:unitFlags fromDate:[NSDate date]];
NSInteger weekOfYear = dateComponent.weekOfYear;
if (dateComponent.yearForWeekOfYear > dateComponent.year)
weekOfYear = 52;
NSLog(@"%i",weekOfYear); // 52