Я считаю, что достаточно сказать, что два диапазона перекрываются, если:
(StartDate1 <= EndDate2) and (StartDate2 <= EndDate1)