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

1、说明:

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

2、工具类代码

/**

* @author: huangyibo

* @Date: 2021/1/22 22:16

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

*/

public class HolidayUtils {

private static final Logger logger = LoggerFactory.getLogger(HolidayUtils.class);

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

/**

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

* @param list 节假日数据源

* @param weekDayList 节后补班数据源

* @param today 计算开始时间

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

* @return

*/

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

String today1 = HolidayUtils.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(isWorkWeekDay(sdf.format(tomorrow),weekDayList)){

logger.info("HolidayUtils.getScheduleActiveDate {}: 是节假日调休补班",sdf.format(tomorrow));

}else{

logger.info("Holid

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值