在joda time中,Interval.contains(Interval)
的实现如下所示:
return (thisStart <= otherStart && otherStart < thisEnd && otherEnd <= thisEnd);
我很难理解为什么需要第二部分
thisStart <= otherStart && otherEnd <= thisEnd
够了。
最佳答案
这是注释中解释的一个特殊情况,以避免other
间隔在thisEnd
处有0个持续时间(start==end)。thisStart
包括时间,thisEnd
不包括时间
[09:00到10:00)包含[10:00到10:00)=false(otherstart等于thisend)
this --+
|----------| +--- not contained
| <-- other --+
this --+
|----------| +--- contained
| <-- other --+
this --+
|----------| +--- contained
| <-- other --+
关于algorithm - 为什么Interval.contains(Interval)需要包括other.start <this.end条件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55948573/