欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java 时间+X工作日

程序员文章站 2022-05-17 21:37:42
...

  首先,建立一张表,里面存公司或者客户提供的节假日.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