2017-03-09 58 views
1

为了找到两个日期范围的重叠,我明白我们需要类似的东西。Jodatime重叠方法不检查等于

(thisStart <= otherEnd) && (otherStart <= thisEnd) 

但是这里面the overlaps method from Joda Time我看到

thisStart < otherEnd && otherStart < thisEnd 

这不会支付一定的重叠条件。有覆盖重叠使用时间< =

+1

请注意,JodaTime时间间隔在开始时是包含性的,在结尾处是排他性的,即'start <= x kennytm

+0

when thisStart = otherEnd = otherStart – RBz

+0

另请参阅:[Joda时间中的包含日期范围检查](http://stackoverflow.com/questions/13583944/inclusive-date-range-check-in-joda-time?rq = 1 ) – Jesper

回答

1

startend时刻任何其它方法。在乔达(以及任何时间范围的理智执行)中,范围在右侧是半开放的,即它不包括结束时刻。

在这些条件下,Joda库中的测试是正确的。

如果你仍然不服气,尝试拿出一个反例,其中重叠检测不正确。

+0

我在评论中分享了一个场景。可以说,这不是一个范围本身。但我相信它对于很多常见业务场景非常有效。 – RBz

+3

换句话说,加里森说半开放式的方法意味着开始*包含*而结尾* *排除*。这是定义时间跨度的常用和明智的方法。 –