天天看點

java 時間+X工作日

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

繼續閱讀