'-Tag der Woche DECLARE FUNCTION WeekDay% (Datum$) '-Schaltjahr DECLARE FUNCTION IsLeapYear% (Jahr%) '-Zu einem Datum Tage dazuaddieren DECLARE FUNCTION AddDay$ (Datum$, Days%) '-Datum gltig DECLARE FUNCTION CheckDate% (dat$) DECLARE FUNCTION DateToJulian& (Datum$) DECLARE FUNCTION JulianToDate$ (julian&) FUNCTION AddDay$ (Datum$, Tage%) julian& = DateToJulian(Datum$) julian& = julian& + Tage% AddDay$ = JulianToDate$(julian&) END FUNCTION FUNCTION CheckDate% (Datum$) julian& = DateToJulian&(Datum$) Test$ = JulianToDate$(julian&) IF Datum$ = Test$ THEN CheckDate% = -1 ELSE CheckDate% = 0 END IF END FUNCTION FUNCTION DateToJulian& (Datum$) Tag% = VAL(MID$(Datum$, 1, 2)) Monat% = VAL(MID$(Datum$, 4, 2)) Jahr% = VAL(MID$(Datum$, 7)) IF Monat% > 2 THEN Monat% = Monat% - 3 ELSE Monat% = Monat% + 9 Jahr% = Jahr% - 1 END IF Erg1& = 146097 * (Jahr% \ 100) \ 4 Erg2& = 1461& * (Jahr% MOD 100) \ 4 Erg3& = (153 * Monat% + 2) \ 5 + Tag% + 1721119 DateToJulian& = Erg1& + Erg2& + Erg3& END FUNCTION FUNCTION IsLeapYear% (Jahr%) TMP% = Jahr% IF (TMP% MOD 100) = 0 THEN TMP% = TMP% \ 100 IF (TMP% MOD 4) = 0 THEN IsLeapYear% = -1 END FUNCTION FUNCTION JulianToDate$ (julian&) x& = 4 * julian& - 6884477 y& = (x& \ 146097) * 100 d& = (x& MOD 146097) \ 4 x& = 4 * d& + 3 y& = (x& \ 1461) + y& d& = (x& MOD 1461) \ 4 + 1 x& = 5 * d& - 3 m& = x& \ 153 + 1 d& = (x& MOD 153) \ 5 + 1 IF m& < 11 THEN Monat% = m& + 2: ELSE Monat% = m& - 10 Tag% = d&: Jahr% = y& + m& \ 11 Jahr$ = RIGHT$("000" + MID$(STR$(Jahr%), 2), 4) Monat$ = RIGHT$("0" + MID$(STR$(Monat%), 2), 2) Tag$ = RIGHT$("0" + MID$(STR$(Tag%), 2), 2) JulianToDate$ = Tag$ + "." + Monat$ + "." + Jahr$ END FUNCTION ' '! 1= Mo, 2=Di, 3=Mi, 4=Do, 5=Fr, 6=Sa, 7=So FUNCTION WeekDay% (Datum$) WeekDay% = DateToJulian&(Datum$) MOD 7 + 1 END FUNCTION