我这里是个简单版的,只是去除周末,对于节假日无法自动掌控,需要配置节假日表,因为中国的节假日是每年定一次。
可以参考:获取n个工作后的日期,排除节假日和调休、
我的简单版代码如下:
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date currDay = sdf.parse("2022-03-3");
System.out.println(getWorkDay(currDay, 30));
}
public static Date getWorkDay(Date startDate, int workDay) {
Calendar c1 = Calendar.getInstance();
c1.setTime(startDate);
for (int i = 0; i < workDay; i++) {
c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1);
if (Calendar.SATURDAY == c1.get(Calendar.DAY_OF_WEEK)
|| Calendar.SUNDAY == c1.get(Calendar.DAY_OF_WEEK)) {
workDay++;
continue;
}
}
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(df.format(c1.getTime()));
return c1.getTime();
}