【发布时间】:2019-01-13 14:13:09
【问题描述】:
场景 1:
- R1 = 02/08/2018 - 20/08/2018
-
R2 = 06/08/2018 - 29/08/2018
R1 |--------------| R2 |---------------------|
场景 2:
- R1 = 02/08/2018 - 20/08/2018
-
R2 = 31/08/2018 - 16/09/2018
R1 |--------------| R2 |---------------------|
有两个不同的日期范围,我需要比较这些范围以确定它们是否相交。例如,在第一种情况下,范围相交,而在第二种情况下,它们不相交。日期采用dd/MM/yyyy 格式。
确定它们是否相交的最佳方法是使用 Java?
def R1Initial = SDF.parse(u.effectiveStartDate.text())
def R1End = SDF.parse(u.mdfSystemEffectiveEndDate.text())
def R2Initial = SDF.parse(u.effectiveStartDate.text())
def R2End = SDF.parse(u2.mdfSystemEffectiveEndDate.text())
def intersects = ?????
【问题讨论】:
-
@Jacob 不太重复,因为该问题与语言无关。此问题是特定于语言的,使用 Groovy 和 Java。使用 Groovy,我们有该语言支持的特定解决方案,如 bdkosher 的 the Answer 所示。在 Java 中,我们可以在 java.time 类和 ThreeTen-Extra 项目中使用特定的解决方案,如 my Answer 所示。我寻找其他特定于 Java 的原件询问重叠日期范围,但没有找到。因此,我的回答和我的赞成票。