在Joda-Time中,Interval.contains(Interval)
的实现如下所示:
return (thisStart <= otherStart && otherStart < thisEnd && otherEnd <= thisEnd);
我很难理解为什么需要第二部分otherStart < thisEnd
,即。 e。为什么不
thisStart <= otherStart && otherEnd <= thisEnd
足够。
答案 0 :(得分:2)
这是注释中解释的一种特殊情况,以避免other
间隔持续时间为0(开始==结束)位于thisEnd
thisStart
时间被包括在内,thisEnd
时间被排除了
[09:00至10:00)包含[10:00至10:00)= false(otherStart等于thisEnd)
this --+
|----------| +--- not contained
| <-- other --+
this --+
|----------| +--- contained
| <-- other --+
this --+
|----------| +--- contained
| <-- other --+
答案 1 :(得分:2)
由于时间点,开始等于结束。
[00:00 -> 00:10) does contain [00:00 -> 00:00)
[00:00 -> 00:10) does not contain [00:10 -> 00:10)