检查 joda.time.Interval 是否正好跨越 1 个日历周的更好方法(考虑夏令时等)

发布于 2024-11-04 18:31:34 字数 264 浏览 1 评论 0原文

有更好的方法吗?

boolean oneCalendarWeek = interval.getStart().plusWeeks(1).equals( interval.getEnd() );

我猜由于 equals 的实现方式,以下内容将不起作用......

boolean oneCalendarWeek = interval.toPeriod().equals( Weeks.ONE );

Is there a better way of doing this?

boolean oneCalendarWeek = interval.getStart().plusWeeks(1).equals( interval.getEnd() );

I guess the following won't work because of the way equals is implemented...

boolean oneCalendarWeek = interval.toPeriod().equals( Weeks.ONE );

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拒绝两难 2024-11-11 18:31:34

来自评论:

我真的很想知道 API 是否支持像我的第二个示例这样的东西,我认为它比第一个更清晰

虽然使用 Weeks.ONE 的示例不起作用(因为 Period.equals()< /code> 首先检查两个 Period 实例是否支持相同数量的字段,而 Weeks.ONE 仅支持一个字段),这应该有效:

boolean oneCalendarWeek = interval.toPeriod().equals( Period.weeks(1) );

这里是一个代码示例,用于测试从 DST 开始之前开始到 DST 期间结束的时间间隔。但是,我不能 100% 确定如果间隔的开始或结束时间恰好落在 DST 边界上,这会如何表现。

From the comments:

i really want to know if the api supports something like my second example which i think is clearer than the first

While the example using Weeks.ONE does not work (since Period.equals() first checks if the two Period instances support the same number of fields, and Weeks.ONE only supports one field), this should work instead:

boolean oneCalendarWeek = interval.toPeriod().equals( Period.weeks(1) );

Here is a code sample that tests this for an interval that starts before the start of DST and ends while in DST. However, I'm not 100% sure how this would behave if the start or end time of the Interval fell exactly on the DST boundary.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文