一,计算一年中有多少周
NSDate * newdate = [NSDate date];
return [[NSCalendar currentCalendar] rangeOfUnit:NSWeekCalendarUnit inUnit:NSYearCalendarUnit forDate:newdate].length;
以上返回的就是今天所在的年的周数。
此外,还可以通过components指定某个日期,在用以上方法获得指定的日期所在的年的周数。
二,获取一周中的第一天
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[calendar setFirstWeekday:1];//设定周日为一周的第一天,如果想从周一开始就设置为2
NSDate *beginningOfWeek = nil;
BOOL ok = [calendar rangeOfUnit:NSWeekCalendarUnit startDate:&beginningOfWeek interval:NULL forDate: date];
if(!ok){
NSLog(@"get the first day of a week failed !");
}
三,上一周,下一周
NSDate * _p_date = [NSDate date];
NSDateComponents *components = [[NSDateComponents alloc] init];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[components setWeek:-1];
NSDate * currentDate = [calendar dateByAddingComponents:components toDate:_p_date options:0];
这是获得当前日期的上一周的今天。同样
[components setWeek:1];
这就是获得下一周的今天。