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

На этот вопрос уже есть ответ:

Определите, перекрываются ли два диапазона дат 34 ответа

Я должен определить, перекрываются ли два периода времени.
Каждый период имеет дату начала и дату окончания.
Мне нужно определить, совпадает ли мой первый период времени (A) с другим (B / C).
В моем случае, если начало B равно концу A, они не перекрываются (тоже обратное)
Я обнаружил следующие случаи:

Так что на самом деле я делаю это так:

tStartA < tStartB && tStartB < tEndA //For case 1
OR
tStartA < tEndB && tEndB <= tEndA //For case 2
OR
tStartB < tStartA  && tEndB > tEndA //For case 3

(Случай 4 учитывается либо в случае 1, либо в случае 2)

Этоработае, но, похоже, не очень эффективно.

Итак, во-первых, существует ли в c # существующий класс, который может моделировать это (период времени), что-то вроде временного интервала, но с фиксированной датой начала.

Во-вторых: есть ли уже код c # (как вDateTime класс), который может справиться с этим?

Третий: если нет, каков ваш подход, чтобы сделать это сравнение наиболее быстрым?

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

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