java计算两个日期间的工作日

public int calLeaveDays(Date startTime, Date endTime){

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

int leaveDays = 0;

Date flag = startTime;//设置循环开始日期

Calendar cal = Calendar.getInstance();

while(flag.compareTo(endTime)!=1){

cal.setTime(flag);

int week = cal.get(Calendar.DAY_OF_WEEK) - 1;

String ff = format.format(cal.getTime());

if(week == 0 || week == 6){

//为周六日的工作日

int gzr = zysxMapper.getHoliday(ff,0);

if(gzr > 0){

leaveDays = leaveDays + 1;

cal.add(Calendar.DAY_OF_MONTH, +1);

flag = cal.getTime();

continue;

}else{

//跳出循环进入下一个日期

cal.add(Calendar.DAY_OF_MONTH, +1);

flag = cal.getTime();

continue;

}


}

try{

int count = zysxMapper.getHoliday(ff,1);

if (count > 0){

cal.add(Calendar.DAY_OF_MONTH, +1);

flag = cal.getTime();

continue;

}

}catch (Exception e){

e.printStackTrace();

}

//不是节假日或者周末,天数+1

leaveDays = leaveDays + 1;

//日期往后加一天

cal.add(Calendar.DAY_OF_MONTH, +1);

flag = cal.getTime();

}

return leaveDays;

}

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章