我可以理解为什么在大多数情况下强制执行结束时间大于开始时间是正确的,但JodaTime库是否有特定原因强制对BaseInterval类型进行约束?
这实际上阻碍了我设计时间机器的能力,时间机器也可以及时向后移动。
答案 0 :(得分:1)
因为在开始之前无法完成某些事情。
JodaTime测量系统的时间正在增加。这意味着所有时间都被订购,以便在"之前的时间更短。更大的时间。 "开始"这样的时间保证小于或等于它的结束"时间。
至于设计原因,它大大简化了数学运算。为了比较两次是否重叠,可以基于开始时间在结束时间之前的假设来简化比较。如果没有这样的假设,就必须检测方向"一个时间间隔,并可能得到它的反方向"以相同的方式检测重叠。
由于时间间隔可以以获得两个间隔的边界间隔的方式组合,因此包含非相似方向的间隔会破坏数学假设。例如,包含前向和后向时间方向的区间边界的方向是什么?我想我们可以想出一个"混合"方向,但这进一步使数学有三个状态的间隔方向复杂化。
同样地,当其组件处于混合方向时拒绝计算边界间隔会使所有普通用例的界面复杂化。基于间隔的干净,简洁的基于数学的数学必须以某种方式干净地结合方向。