因工作需要,要获取当前日期之后的N个工作日日期,为此写了个分类,Mark一下,需要的小伙伴可以自行拿走,不用谢(转载请注明出处taoshu123zone)
//获取当前日期之后的N个工作日后的日期
+ (NSDate *)nextWeekdays:(NSInteger)days{
if (days <= 0) {
return [NSDate date];
}
NSCalendar *calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierChinese];
NSDateComponents *comps = [[NSDateComponents alloc] init];
NSInteger unitFlags = NSCalendarUnitWeekday;
NSDate *today = [NSDate date];
comps = [calendar components:unitFlags fromDate:today];
NSInteger weekday = [comps weekday];
NSInteger m = (days/5) * 7;
NSInteger remainder = days % 5;
switch (weekday) {
case 1:
m = ((days- 1) / 5) * 7 + remainder;//周天
break;
case 2:case 3:case 5:case 6:case 7:
{
m += remainder + ((remainder + weekday - 2)/ 5) * 2;
}
default:
break;
}
return [today nextDay:m];
}
//获取当前日期之后N天的日期
- (NSDate *)nextDay:(NSInteger)day{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *component = [[NSDateComponents alloc] init];
[component setDay:day];
return [calendar dateByAddingComponents:component toDate:self options:0];
}