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

时间:2011-05-04 00:27:19

标签: java jodatime

有更好的方法吗?

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

我认为以下方法不起作用,因为equals的实现方式......

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

1 个答案:

答案 0 :(得分:2)

来自评论:

  

我真的想知道api是否支持像我的第二个例子,我认为比第一个更清楚

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

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

Here is a code sample测试这个在DST开始之前开始并在DST结束的时间间隔。但是,如果Interval的开始或结束时间完全落在DST边界上,我不能100%确定这会如何表现。