Я должен определить, перекрываются ли два периода времени.
Каждый период имеет дату начала и дату окончания.
Мне нужно определить, перекрывает ли мой первый период времени (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)
Он работает, но он кажется не очень эффективным.
Итак, во-первых, существует существующий класс в С#, который может моделировать это (период времени), что-то вроде timepsan, но с фиксированной датой начала.
Во-вторых: есть ли код С# (как в классе Datetime), который может справиться с этим?
В-третьих: если нет, каков будет ваш подход, чтобы сделать это сравнение наиболее быстрым?