如何确定两个区间是否有交集?
问题:
假设有两个区间M(s1, e1)和N(s2, e2),如何判断两个区间是否有交集?
解答:
命题A: M和N相离,且M在前N在后。(当 s2 > e1时成立)
命题B: M和N相离,且M在后N在前。 ( 当 s1 > e2时成立)
如果命题(A or B)为真,则两个区间每有交集。
则如果命题(A or B)都为假,则两个区间有交集。
根据德摩根定律可知:
!(A or B) = !A and !B
也就是说 (s2 <= e1) and (s1 <= e2)
原文:http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap
本文章迁移自http://blog.csdn.net/timberwolf_2012/article/details/23614635