java获取法定节假日_java 获取n个工作日后的日期(包含法定节假日、双休日、节后补班)...

这是一个Java工具类,用于计算包含法定节假日、双休日和节后补班的n个工作日后的日期。通过查询数据库中的法定节假日和补班数据,实现对日期的准确计算。
摘要由CSDN通过智能技术生成

1.说明:

获取n个工作日后的日期(包含法定节假日、双休日、节后补班),需要在数据库手动入库当年的法定节假日及节假日调休补班。(也可写在配置文件中读取)

2.工具类代码

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.List;

/**

* 用于查询n个工作日(包含法定节假日、双休日、调休)后的日期

* @author ywh

* @version 创建时间:2019年4月24日 下午5:50:29

*/

public class HolidayUtils {

private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

/**

* 用于判断n个工作日(排除节假日、周六日包含节后补班数据)后的日期

*

* @author ywh

* @version 创建时间:2019年4月24日 上午11:24:58

* @param list 节假日数据源

* @param weekDayList 节后补班数据源

* @param today 计算开始时间

* @param num 多少个工作日 根据需要自行安排

* @return

* @throws ParseException

*/

@SuppressWarnings("deprecation")

public static Date getScheduleActiveDate(List list,List weekDayList, Date today,int num) throws ParseException {

String today1 = DateUtils.parseDate(today, "yyyy-MM-dd");

Date tomorrow = null;

int delay = 1;

while(delay <= num){

tomorrow = getTomorrow(today);

//当前日期+1即tomorrow,判断是否是节假日,同时要判断是否是周末,都不是则将scheduleActiveDate日期+1,直到循环num次即可------不是节假日不是周末并且不是补班

if((!isWeekend(sdf.format(tomorrow)) && !isHoliday(sdf.format(tomorrow),list)) || isWorkWeekDay(sdf.format(tomorrow),weekDayList)){

if(isWorkWeekD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值