Интервалы НЕ пересекаются, тогда и только тогда, когда один из них находится после другого. То есть
start2 > end1 || start2 > end1
Но нам надо получить условие пересечения, то есть условие отрицания непересечения
~(start2 > end1 || start2 > end1) =
= ~(start2 > end1) && ~(start2 > end1) =
= start2 <= end1 && start2 <= end1
Три условия от
S-a-n-d-r-0 тоже можно привести в этот вид. Используйте булеву логику.