/**
* 用于判断n个工作日(排除节假日、周六日包含节后补班数据)后的日期
* @param list 节假日数据源
* @param weekDayList 节后补班数据源
* @param today 计算开始时间
* @param num 多少个工作日 根据需要自行安排
* @throws ParseException
*/
public static Date getScheduleActiveDate(List<String> list,List<String> weekDayList, Date today,int num) {
try{
String today1 = DateUtil.parseDate(today, "yyyy-MM-dd");
Date tomorrow = null;
int delay = 1;
while(delay <= num){
tomorrow = getTomorrow(today);
//当前日期+1即tomorrow,判断是否是节假日,同时要判断是否是周末,都不是则将scheduleActiveDate日期+1,直到循环num次即可------不是节假日不是周末并且不是补班
if((!isWeekend(sdf.format(tomorrow)) && !isHoliday(sdf.format(tomorrow),list)) || isWorkWeekDay(sdf.format(tomorrow),weekDayList)){
if(isWorkWeekDay(sdf.format(tomorrow),weekDayList)){
System.out.println(sdf.format(tomorrow) + "::是节假日调休补班");
}else{
System.out.println(sdf.format(tomorrow) + "::是正常工作日");
}
delay++;
today = tomorrow;
}else if (isHoliday(sdf.format(tomorrow),list)){
// tomorrow = getTomorrow(tomorrow);
today = tomorrow;
System.out.println(sdf.format(tomorrow) + "::是节假日");
}else if(isWeekend(sdf.format(tomorrow))){//是周六日并且不是节后补班
if(!isWorkWeekDay(sdf.format(tomorrow),weekDayList)){
today = tomorrow;
System.out.println(sdf.format(tomorrow) + "::是休息日");
}
}
Java 计算工作日,休假,调休,调班等
于 2021-11-15 14:50:41 首次发布