/**
* 根据开始日期 ,需要的工作日天数 ,计算工作截止日期,并返回截止日期
* @param startDate 开始日期
* @param workDay 工作日天数(周一到周五)
* @return Date类型
* @createTime 2019-11-08
* @author XinQiangWang
*/
public static Date getWorkDay(Date startDate, int workDay) {
Calendar c1 = Calendar.getInstance();
c1.setTime(startDate);
for (int i = 0; i < workDay; i++) {
// 判断当天是否为周末,如果是周末加1
if (Calendar.SATURDAY == c1.get(Calendar.SATURDAY) || Calendar.SUNDAY == c1.get(Calendar.SUNDAY)) {
workDay = workDay + 1;
c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1);
continue;
}
c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1);
// 当天数加1 判断是否为周末 如果是周末加1
if (Calendar.SATURDAY == c1.get(Calendar.SATURDAY) || Calendar.SUNDAY == c1.get(Calendar.SUNDAY)) {
workDay = workDay + 1;
c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1);
continue;
}
}
//c1.set(Calendar.HOUR_OF_DAY, hour);
//c1.set(Calendar.SECOND, second);
//c1.set(Calendar.MINUTE, minute);
//SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//Date time = new Date(df.format(c1.getTime()));
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//String timeFormat = sdf.format(time);
return c1.getTime();
}
使用:
public static void main(String [] args) throws ParseException {
//String source = "2019-11-1 10:45:06";// 开始时间
Date dates = new Date();//当前时间
int workDay = 3;// 工作日天数
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 格式化时间
String source = df.format(dates);// 格式化开始时间:2019-11-1 10:45:06
//Date类型:df.parse(source)
System.out.println(df.format(getWorkDay(df.parse(source), workDay)));//格式化输出时间:2019-11-13 10:34:32
}