您的位置 首页 java

Java 8 新日期API 计算下个工作日的方式如此简单

导述

java 8 中引入了新的日期处理包 java.time. 日期相关:LocalDate 时间:LocalDateTime 时间戳:Instant 持续时间:Duration 时区控制:ZonedDateTime

这几个类以及可以实现所有日期相关的操作,而且还可以进行自定义操作。比如现在需要计算下个工作日的时间,应该如何进行处理呢?

Java 8 新日期API 计算下个工作日的方式如此简单

日期类

在Java 8 中处理日期相关计算,使用LocalDate类。查看已有的实现是否满足需要呢?

Java 8 新日期API 计算下个工作日的方式如此简单

默认提供的实现方式中,不存在类似函数。但通过上图可以看出

ofDateAdjuster(UnaryOperator<LocalDate> dateBasedAdjuster)

其注释:Obtains a {@code TemporalAdjuster} that wraps a date adjuster(日期的调节器)

实现

DayOfWeek是一个枚举类,也是Java 8 新添加的类型。

通过上图中提供的函数类型:TemporalAdjusters.ofDateAdjust

er()自定义实现

  TemporalAdjuster nextWorkingDay = TemporalAdjusters.ofDateAdjuster(
            temporal -> {
                DayOfWeek dow =
                    DayOfWeek.of(temporal.get(ChronoField.DAY_OF_WEEK));
                int dayToAdd = 1;
                if (dow ==DayOfWeek. FRIDAY ){
                    dayToAdd = 3;
                }
                if (dow ==DayOfWeek.SATURDAY){
                    dayToAdd = 2;
                }
                return temporal. plus (dayToAdd, ChronoUnit.DAYS);
            });  

//测试

 LocalDate localDate = LocalDate.now().with(nextWorkingDay);  

总结

由于Java8 中引入 函数式编程 ,编程风格趋于简单化。新的日期处理方式拥有众多优良特性。建议尽快切换到新的日期处理。

文章来源:智云一二三科技

文章标题:Java 8 新日期API 计算下个工作日的方式如此简单

文章地址:https://www.zhihuclub.com/173242.shtml

关于作者: 智云科技

热门文章

网站地图