public class DateTest {
public static void main(String[] args) {
//当前时间是2021年11月19号,周五
Date date = new Date();
//获取两天后的不包含周末的日期,23号
System.out.println(getAfterDayWithoutWeekend(date, 2));
//获取两天后的时间,21号
System.out.println(getAfterDay(date, 2));
}
/**
* 获取几天后的数据,不包含周末
* 通过calendar获取当前时间的在一周的天数
* 周日是第一天,周一是第二天...周六是第七天
* @param date
* @param diff
* @return
*/
private static Date getAfterDayWithoutWeekend(Date date, int diff) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date == null ? new Date() : date);
calendar.add(Calendar.DATE, diff);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == 1 || dayOfWeek == 7) {
calendar.add(Calendar.DATE, 2);
}
return calendar.getTime();
}
private static Date getAfterDay(Date date, int diff) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date == null ? new Date() : date);
calendar.add(Calendar.DATE, diff);
return calendar.getTime();
}
}