Алгоритм обнаружения перекрывающихся периодов [дубликат]
На этот вопрос уже есть ответ:
Определите, перекрываются ли два диапазона дат 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
класс), который может справиться с этим?
Третий: если нет, каков ваш подход, чтобы сделать это сравнение наиболее быстрым?