JAvaはn日後の平日を取得し、祝日を考慮しない
ネット上の関連コードを見たことがありますが、構想の多くは週末を排除するために反復日付で、効率はあまり高くなく、自分で書きました.参照のみ
/**
* n
* @param today
* @param afterDays
* @return
*/
public static Date getAfterWorkDay(Date today, Integer afterDays){
if (today == null) {
throw new BussinessException(" ");
}
if (afterDays == null) {
throw new BussinessException(" ");
}
Integer workAfterDays = afterDays;
/**
*
*/
Integer cycle = 7;
Integer i = afterDays / cycle;
workAfterDays += i * 2;
Calendar c = Calendar.getInstance();
c.setTime(today);
c.add(Calendar.DAY_OF_MONTH, workAfterDays);
c.set(Calendar.HOUR, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
if(c.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){
c.add(Calendar.DAY_OF_MONTH, 2);
} else if(c.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY){
c.add(Calendar.DAY_OF_MONTH, 1);
}
return c.getTime();
}