首先,建立一張表,裡面存公司或者客戶提供的節假日.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