Überschneidung von Zeiträumen
Verfasst: 10.01.2013 16:55
Hallo Leute, ich brauche mal eure Hilfe
Ich habe bis jetzt diese Procedure zur Ermittlung von Überschneidungen von 2 Zeiträumen
Die Enden der Zeiträume können offen sein. Soweit funktioniert diese Prozedur auch. Nun muss ich die aber erweitern, so dass auch offene Beginnzeiträume zugelassen werden. Irgendwie komme ich da immer durcheinander und verstricke mich. Kann mir jemand dabei behilflich sein - vielleicht gehts ja auch viel einfacher.
Vielen Dank für eure Mühe.
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.