Datumswerte vergleichen

Will man testen, ob zwei Datumsbereiche sich überschneiden, gibt es vier verschiedene Möglichkeiten:

------|------|------  -> Ausgangsbereich z.B.: 01.12. - 06.12.
-------|----|-------  -> 1) Testbereich liegt innerhalb des Ausgangsbereiches
----|----------|----  -> 2) Testbereich umgibt Ausgangsbereich
----|------|--------  -> 3) Testbereich startet vor Ausgangsbereich und endet im Ausgangsbereich
--------|------|----  -> 4) Testbereich startet im Ausgangsbereich und endet nach dem Ausgangsbereich
--------|-----------  -> 5) Testbereich startet im Ausgangsbereich und hat noch kein Ende
----|---------------  -> 6) Testbereich startet vor Ausgangsbereich und hat noch kein Ende

Folgendes Groovyskript übersetzt die Logik mit Hilfe von Operatoren:

//Define the date format as per your input
def df = "dd.MM.yyyy"

//Parse the date string with above date format
def schuelerVON = new Date().parse(df, "01.12.2021")
def schuelerBIS = new Date().parse(df, "02.12.2021")


def berichtVON = new Date().parse(df, "30.11.2021")
def berichtBIS = new Date().parse(df, "04.12.2021")

//Compare both date times
print("START\n\n")
                                                                print("------|------|------\n")
if(schuelerVON >= berichtVON && schuelerBIS <= berichtBIS)      print("-------|----|------- = 1) true")
else if(schuelerVON <= berichtVON && schuelerBIS >= berichtBIS) print("----|----------|---- = 2) true")
else if(schuelerBIS >= berichtVON && schuelerBIS <= berichtBIS) print("----|------|-------- = 3) true")
else if(schuelerVON <= berichtBIS && schuelerVON >= berichtVON) print("--------|------|---- = 4) true")
else if(schuelerVON <= berichtVON && schuelerBIS == null)       print("--------|----------- = 5) true")
else if(schuelerVON <= berichtVON && schuelerBIS == null)       print("----|--------------- = 5) true")
else print("false")

unsere-schule.org

×

Datumswerte vergleichen

Code: