200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java 剔除节假日_使用java 排除 两个日期段中的 休息日和节假日 。等待中十

java 剔除节假日_使用java 排除 两个日期段中的 休息日和节假日 。等待中十

时间:2019-11-25 00:15:32

相关推荐

java 剔除节假日_使用java 排除 两个日期段中的 休息日和节假日 。等待中十

展开全部

时间处理,更方便和更易读的代码角度讲e68a8462616964757a686964616f31333361326236,肯定要用Java8的新date api啦,由于涉及到一系列日期,所以结合Java8的Stream也是理所当然

总体思路:由于节假日每年在变,所以需要罗列出所有的节假日集合A

生成-01-01 至 -05-01所有的日期,生成日期集合B

从B中过滤掉A中的节假日

从B中过滤掉周六周日

最后把B中集合打印

结合思路,所见即所得的代码如下://所有节假日的日期集合,这里你可以自己添加,只写了两个仅供参考(完成思路1)

Listholidays=Arrays.asList(LocalDate.parse("-01-01"),LocalDate.parse("-05-01"));

//按照起始-01-01,每次递增一天的方式生成一个Stream

Stream.iterate(LocalDate.parse("-01-01"),localDate->localDate.plusDays(1))

//按照要求的时间间隔-01-01至-05-01中的实际间隔天数截断Stream(完成思路2)

.limit(ChronoUnit.DAYS.between(LocalDate.parse("-01-01"),LocalDate.parse("-05-01")))

//过滤其中的节假日(完成思路3)

.filter(localDate->!holidays.contains(localDate))

//过滤其中的周六

.filter(localDate->!DayOfWeek.SATURDAY.equals(DayOfWeek.of(localDate.get(ChronoField.DAY_OF_WEEK))))

//过滤其中的周日(完成思路4)

.filter(localDate->!DayOfWeek.SUNDAY.equals(DayOfWeek.of(localDate.get(ChronoField.DAY_OF_WEEK))))

//打印最后结果(完成思路5)

.forEach(System.out::println);

打印的结果:

综上:结合新时间API的易用性+Stream处理集合的快捷性,写出代码还是很简洁的

java 剔除节假日_使用java 排除 两个日期段中的 休息日和节假日 。在线等待中十万火急 求大牛帮忙 多谢了。。。。...

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