Как насчет проверки, если ваши периоды времени не перекрываются? Тогда, если неперекрывающееся условие ложно, это означает, что они действительно перекрываются:

от вопрос уже есть ответ здесь:

Алгоритм обнаружения перекрывающихся периодов [дубликат] 12 ответов

У меня есть четыре объекта DateTime. А1, А2 и В1, В2.

Мне нужно знать, что период A1-A2 не пересекается с периодом B1-B2. Но я не хочу писать грязный код, как многие блоки if.

if (A1 < B1 && A2 > B1)
{
    return false;
}

.... и т.д.

РЕДАКТИРОВАНИЕ

Я пытался использовать это:Сравнение диапазонов

DateTime A1 = DateTime.MinValue.AddMinutes(61);
DateTime A2 = DateTime.MinValue.AddHours(1.2);
DateTime B1 = DateTime.MinValue.AddMinutes(5);
DateTime B2 = DateTime.MinValue.AddHours(1);

Console.WriteLine(Range.Overlap(
    new Range<DateTime>(A1, A2),
    new Range<DateTime>(B1, B2)
));

Вернулсяправда но я ожидалложный, Потому что этот код всегда возвращает истину

 if (left.Start.CompareTo(left.Start) == 0)
 {
     return true;
 }

Ответы на вопрос(11)

Ваш ответ на вопрос