200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java假期顺延求一个日期n天后的日期(排除节假日及周六周日)

java假期顺延求一个日期n天后的日期(排除节假日及周六周日)

时间:2023-01-27 02:37:32

相关推荐

java假期顺延求一个日期n天后的日期(排除节假日及周六周日)

1,引入hutool工具类jar

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.8</version></dependency>

有关hutool的介绍参考其官网API:

/

2,公共方法如下:

判断是否为假日

public static Boolean isHoliday(String date){//freeday为本年的假日日期(我这里为的假期,手动导入)ArrayList<String> freedate = new ArrayList<String>(){{this.add("-01-01");this.add("-01-02");this.add("-01-03");this.add("-02-11");this.add("-02-12");this.add("-02-13");this.add("-02-14");this.add("-02-15");this.add("-02-16");this.add("-02-17");this.add("-04-03");this.add("-04-04");this.add("-04-05");this.add("-05-01");this.add("-05-02");this.add("-05-03");this.add("-05-04");this.add("-05-05");this.add("-06-12");this.add("-06-13");this.add("-06-14");this.add("-09-19");this.add("-09-20");this.add("-09-21");this.add("-10-01");this.add("-10-02");this.add("-10-03");this.add("-10-04");this.add("-10-05");this.add("-10-06");this.add("-10-07");}};if (freedate.contains(date)){return true;}else{return false;}}

判断是否为weekday

public static Boolean isWeekday(String date){return DateUtil.isWeekend(DateUtil.parse(date,"yyyy-MM-dd"));}public static String getMonday(String date){if(isWeekday(getTomorrow(date))){return getTomorrow(getTomorrow(date));}else{return getTomorrow(date);}}

求原日期明天

public static String getTomorrow(String date){Date now = DateUtil.parse(date,"yyyy-MM-dd");String tomorrow = DateUtil.offsetDay(now,1).toString().substring(0,10);return tomorrow;}

求原日期昨天

public static String getYesterday(String date){Date now = DateUtil.parse(date,"yyyy-MM-dd");String yesterday = DateUtil.offsetDay(now,-1).toString().substring(0,10);return yesterday;}

data参数为待求原日期,sum为求原日期几天日期

public static String getYqsx(String date,int sum) {//先判断其是否为weekday,如果为weekday则直接从周一开始计算if (isWeekday(date)){//这里其实最好也判断一下它得n天后是不是holiday,如果是则再次排除后添加天数//isHoliday(monday)return DateUtil.offsetDay(DateUtil.parse(getMonday(date),"yyyy-MM-dd"),+4).toString().substring(0,10);}else{String yqsx = date;int adddays = sum;while (adddays > 0){yqsx = getTomorrow(yqsx);if (!isHoliday(yqsx)){//判断其后一天是否为weekdayif (!isWeekday(yqsx)){adddays--;}else{yqsx = getMonday(yqsx);adddays--;}}}return yqsx;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。