加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在JSR-310中查找星期几的下一个发生

发布时间:2020-12-14 06:05:15 所属栏目:Java 来源:网络整理
导读:给定一个JSR-310对象,如LocalDate,我如何找到下个星期三(或任何其他星期几)的日期? LocalDate today = LocalDate.now();LocalDate nextWed = ??? 解决方法 答案取决于你对“下周三”的定义;-) JSR-310提供了使用TemporalAdjusters类的两个选项. 第一个选项
给定一个JSR-310对象,如LocalDate,我如何找到下个星期三(或任何其他星期几)的日期?
LocalDate today = LocalDate.now();
LocalDate nextWed = ???

解决方法

答案取决于你对“下周三”的定义;-)

JSR-310提供了使用TemporalAdjusters类的两个选项.

第一个选项是next():

LocalDate input = LocalDate.now();
LocalDate nextWed = input.with(TemporalAdjusters.next(DayOfWeek.WEDNESDAY));

第二个选项是nextOrSame():

LocalDate input = LocalDate.now();
LocalDate nextWed = input.with(TemporalAdjusters.nextOrSame(DayOfWeek.WEDNESDAY));

两者根据输入日期的星期几不同.

如果输入日期为2014-01-22(星期三),则:

> next()将在一周之后返回2014-01-29
> nextOrSame()将返回2014-01-22,与输入相同

如果输入日期为2014-01-20(星期一),则:

> next()将返回2014-01-22
> nextOrSame()将返回2014-01-22

即. next()总是返回一个更晚的日期,而nextOrSame()将返回输入日期,如果它匹配.

请注意,两个选项看起来都比静态导入更好:

LocalDate nextWed1 = input.with(next(WEDNESDAY));
LocalDate nextWed2 = input.with(nextOrSame(WEDNESDAY));

TemporalAdjusters还包括匹配previous()和previousOrSame()方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读