给定一个JSR-310对象,如LocalDate,我如何找到下个星期三(或任何其他星期几)的日期?
LocalDate today = LocalDate.Now(); LocalDate nextWed = ???
解决方法
答案取决于你对“下周三”的定义;-)
JSR-310提供了使用TemporalAdjusters类的两个选项.
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));
原文地址:https://www.jb51.cc/java/120311.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。