【发布时间】:2015-07-08 23:12:19
【问题描述】:
我可以理解为什么在大多数情况下强制结束时间大于开始时间是合适的,但是 JodaTime 库是否有特定原因强制 BaseInterval 类型的约束?
这真的妨碍了我设计一台也可以时光倒流的时光机。
【问题讨论】:
我可以理解为什么在大多数情况下强制结束时间大于开始时间是合适的,但是 JodaTime 库是否有特定原因强制 BaseInterval 类型的约束?
这真的妨碍了我设计一台也可以时光倒流的时光机。
【问题讨论】:
因为在你开始之前不可能完成它。
JodaTime 测量系统中的时间正在递增。这意味着对所有时间进行排序,以使较小的时间在较大的时间“之前”。因此,可以保证某事物的“开始”时间小于或等于其“结束”时间。
出于设计原因,它大大简化了数学运算。为了比较两个时间是否重叠,可以基于开始时间在结束时间之前的假设来简化比较。如果没有这样的假设,人们将不得不检测时间间隔的“方向”,并可能以相同的方式检测重叠的“反向”。
由于时间间隔可以以这样一种方式组合,即获得两个间隔的边界间隔,包含不同方向的间隔打破了数学假设。例如,包含前向和后向时间方向的区间边界的方向是什么?我想一个人可以想出一个“混合”方向,但这进一步使数学与区间方向的三个状态变得复杂。
同样,当它的组件处于混合方向时拒绝计算边界间隔会使所有普通用例的界面复杂化。一个干净、简洁的基于区间数学的集合必须以某种方式干净地结合方向。
【讨论】: