最近项目中有个问题一直不得法, 试了好几个方法,总是把上周日和本周六算成一周内, 修正了之后经测试无误, 记录下...
- (void)isSameWeekWithDate:(NSDate *)toDate{
// 日历对象
NSCalendar *calendar = [NSCalendar currentCalendar];
calendar.firstWeekday = 1; //一周开始默认为星期天
unsigned unitFlag = NSCalendarUnitYear | NSCalendarUnitWeekOfYear;
NSDateComponents *comp1 = [calendar components:unitFlag fromDate:[NSDate date]];
NSDateComponents *comp2 = [calendar components:unitFlag fromDate:toDate];
return (([comp1 year] == [comp2 year]) && ([comp1 weekOfYear] == [comp2 weekOfYear]));
}
注意: 星期天是每周的开始,设置calendar.firstWeekday = 1即可, 如果按照我们习惯,将星期一为每周第一天的话,将代码中calendar.firstWeekday = 2.(1.周日 2.周一 3.周二 4.周三 5.周四 6.周五 7.周六).
欢迎指正哦!