天天看点

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
           

继续阅读