Algorithmus zum Erkennen überlappender Perioden [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Bestimmen Sie, ob sich zwei Datumsbereiche überlappen 34 answers Ich muss feststellen, ob sich zwei Zeiträume überschneiden.
Jeder Zeitraum hat ein Start- und ein Enddatum.
Ich muss feststellen, ob sich meine erste Zeitspanne (A) mit einer anderen überschneidet (B / C).
In meinem Fall, wenn der Anfang von B gleich dem Ende von A ist, überlappen sie sich nicht (auch die Umkehrung)
Ich habe folgende Fälle gefunden:
Also eigentlich mache ich das so:
tStartA < tStartB && tStartB < tEndA //For case 1
OR
tStartA < tEndB && tEndB <= tEndA //For case 2
OR
tStartB < tStartA && tEndB > tEndA //For case 3
(Der Fall 4 wird entweder in Fall 1 oder in Fall 2 berücksichtigt)
It works, aber es scheint nicht sehr effizient.
So, zuerst gibt es eine vorhandene Klasse in c #, die dies modellieren kann (einen Zeitraum), so etwas wie eine Zeitspanne, aber mit einem festen Startdatum.
Secondly: Gibt es schon einen C # Code (wie imDateTime
Klasse) was kann das?
Drittens: Wenn nein, wie würden Sie vorgehen, um diesen Vergleich am schnellsten durchzuführen?