我正在寻找这里提出的问题的扩展答案:
其中任一日期范围中的任何日期都可以为null.我已经提出了以下解决方案,但我不确定它是否可以进一步简化.
(StartA == NULL || StartA <= EndB) &&
(EndA == NULL || EndA >= StartB) &&
(StartB == NULL || StartB <= EndA) &&
(EndB == NULL || EndB >= StartA)
Run Code Online (Sandbox Code Playgroud)
假设:
StartA到EndA和StartB到EndB的DateTime范围
编辑: 对不起,我很快将上述逻辑放在一起,当范围的开始和结束日期都为NULL时,这似乎失败了.请参阅下面的David的解决方案,以获得更好和更好解释的方法.