Algoritmo para detectar períodos superpuestos [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Determine si dos rangos de fechas se superponen 34 respuestas Tengo que detectar si se superponen dos períodos de tiempo.
Cada período tiene una fecha de inicio y una fecha de finalización.
Necesito detectar si mi primer período de tiempo (A) se superpone con otro (B / C).
En mi caso, si el inicio de B es igual al final de A, no se superponen (lo contrario también)
Encontré los siguientes casos:
Así que en realidad estoy haciendo esto así:
tStartA < tStartB && tStartB < tEndA //For case 1
OR
tStartA < tEndB && tEndB <= tEndA //For case 2
OR
tStartB < tStartA && tEndB > tEndA //For case 3
(El caso 4 se toma en la cuenta en el caso 1 o en el caso 2)
Esotrabajo, pero parece que no es muy eficiente.
Entonces, primero hay una clase existente en C # que puede modelar esto (un período de tiempo), algo así como un intervalo de tiempo, pero con una fecha de inicio fija.
n segundo lugar: ¿ya existe un código C # (como en elDateTime
clase) que puede manejar esto?
Tercero: si no, ¿cuál sería su enfoque para hacer que esta comparación sea la más rápida?