Ich habe bis jetzt diese Procedure zur Ermittlung von Überschneidungen von 2 Zeiträumen
Code: Alles auswählen
; Überprüfung auf Überschneidung von zwei Zeiträumen
; Eingangsparameter: BZR1 - Beginn des 1. Zeitraumes (JJJJ-MM-TT)
; EZR1 - Ende des 1. Zeitraumes (JJJJ-MM-TT), leer möglich
; BZR2 - Beginn des 2. Zeitraumes (JJJJ-MM-TT)
; EZR2 - Ende des 2. Zeitraumes (JJJJ-MM-TT), leer möglich
; Ausgangsparameter: 0 - es gibt keine Überschneidung
; 1 - es gibt eine Überschneidung
Procedure.i HabenZeitraeumeUeberschneidung(BZR1.s,EZR1.s,BZR2.s,EZR2.s)
If EZR1>"" And EZR2>""
; Zeitraum 1 in Zeitraum 2
If (BZR1>=BZR2 And BZR1<=EZR2) Or (EZR1>=BZR2 And EZR1<=EZR2)
ProcedureReturn 1
EndIf
; Zeitraum 2 in Zeitraum 1
If (BZR2>=BZR1 And BZR2<=EZR1) Or (EZR2>=BZR1 And EZR2<=EZR1)
ProcedureReturn 1
EndIf
ElseIf EZR1="" And EZR2=""
; Zeitraum 1 und Zeitraum 2 haben offenes Ende
ProcedureReturn 1
ElseIf EZR1>"" And EZR2=""
If BZR1>=BZR2 Or EZR1>=BZR2
ProcedureReturn 1
EndIf
ElseIf EZR1="" And EZR2>""
If BZR2>=BZR1 Or EZR2>=BZR1
ProcedureReturn 1
EndIf
EndIf
ProcedureReturn 0
EndProcedure
Vielen Dank für eure Mühe.