首先,建立一张表,里面存公司或者客户提供的节假日.eg:表名为holiday,存ID和节假日holiday_date,还可以继续存节假日名称什么的;
//思路很简单:获得时间+天数,得到date,在判断date是否是节假日,是则加1,继续判断,只到是工作日,得到该时间,然后计算初始时间和改时间内的节假日天数n,最后你要的加工作日就为: 时间+x+n
public Date dayConfirm(Date date) throws Exception {
List<Map<String,Object>> lst ;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String sql ="";
String nowDate ="";
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
nowDate=sdf.format(calendar.getTime());
sql="select * from ipbp_duty_holiday where holiday_date='"+nowDate+"'";
lst =Dao.getInstance().queryForList(sql);
while(lst.size()>0){
System.out.println("当前日期是假期");
calendar.add(calendar.DATE, +1);
nowDate=sdf.format(calendar.getTime());
sql="select * from ipbp_duty_holiday where holiday_date='"+nowDate+"'";
lst =Dao.getInstance().queryForList(sql);
}
return calendar.getTime();
}
//用初始没有+x天的时间,和上面返回的时间,根据表hoilday表判断这个时间范围类有n个节假日,最后时间+x工作日=时间+x+n