优雅的算法,用于检测无限结束的重叠周期

时间:2016-02-09 14:00:31

标签: algorithm date overlap

我的问题与Algorithm to detect overlapping periods相同 但在我的情况下,句号可以 unbouded (无结束日期,即NULL)。
我无法找到一种优雅的方式。

1 个答案:

答案 0 :(得分:2)

对于无限结束日期,您还可以执行以下操作:

a.end = a.end == NULL  ? MAXDATE : a.end;
b.end = b.end == NULL  ? MAXDATE : b.end;
bool overlap = a.start < b.end && b.start < a.end;

或者这可行:

bool overlap = (a.start < b.end || b.end == NULL) && (b.start < a.end || a.end == NULL);