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

Java 检查joda.time.Interval是否正好跨越1个日历周的更好方法(考虑夏令时等),java,jodatime,Java,Jodatime,有更好的方法吗 boolean oneCalendarWeek = interval.getStart().plusWeeks(1).equals( interval.getEnd() ); 我想下面的方法行不通,因为equals的实现方式 boolean oneCalendarWeek = interval.toPeriod().equals( Weeks.ONE ); 从评论中: 我真的很想知道api是否支持像我的第二个例子那样的东西,我认为这比第一个例子更清楚 虽然使用Weeks.ON

有更好的方法吗

boolean oneCalendarWeek = interval.getStart().plusWeeks(1).equals( interval.getEnd() );
我想下面的方法行不通,因为equals的实现方式

boolean oneCalendarWeek = interval.toPeriod().equals( Weeks.ONE );
从评论中:


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

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

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

在DST开始之前开始并在DST中结束的时间间隔内进行测试。但是,如果时间间隔的开始或结束时间正好在DST边界上,我无法100%确定这将如何进行。

您对“整整一周”的定义是什么?七天、零小时、零分钟、零秒?一个“日历”周,持续时间根据日期和日历的不同而不同,但我的意思是什么分辨率-如果间隔正好168小时(24*7)是一周,那么169小时(7天1小时)怎么样?我删除了“精确”一词,因为它似乎会引起混淆,我不关心一周的精确持续时间,我只是想知道时间间隔(指定为开始和结束日期)是否正好代表一个日历周(可能是168小时,也可能不是168小时)。我真的想知道api是否支持类似于我的第二个示例的内容,我认为这比第一个答案更清楚。谢谢。遗憾的是,我的示例不起作用,我本以为常量
Weeks.ONE
比等于
Period.Weeks(1)
的对象更有用。