为了找到两个日期范围的重叠,我明白我们需要类似的东西。Jodatime重叠方法不检查等于
(thisStart <= otherEnd) && (otherStart <= thisEnd)
但是这里面the overlaps method from Joda Time我看到
thisStart < otherEnd && otherStart < thisEnd
这不会支付一定的重叠条件。有覆盖重叠使用时间< =
为了找到两个日期范围的重叠,我明白我们需要类似的东西。Jodatime重叠方法不检查等于
(thisStart <= otherEnd) && (otherStart <= thisEnd)
但是这里面the overlaps method from Joda Time我看到
thisStart < otherEnd && otherStart < thisEnd
这不会支付一定的重叠条件。有覆盖重叠使用时间< =
start
和end
候时刻任何其它方法。在乔达(以及任何时间范围的理智执行)中,范围在右侧是半开放的,即它不包括结束时刻。
在这些条件下,Joda库中的测试是正确的。
如果你仍然不服气,尝试拿出一个反例,其中重叠检测不正确。
我在评论中分享了一个场景。可以说,这不是一个范围本身。但我相信它对于很多常见业务场景非常有效。 – RBz
换句话说,加里森说半开放式的方法意味着开始*包含*而结尾* *排除*。这是定义时间跨度的常用和明智的方法。 –
请注意,JodaTime时间间隔在开始时是包含性的,在结尾处是排他性的,即'start <= x
kennytm
when thisStart = otherEnd = otherStart – RBz
另请参阅:[Joda时间中的包含日期范围检查](http://stackoverflow.com/questions/13583944/inclusive-date-range-check-in-joda-time?rq = 1 ) – Jesper