Für alle, die auch Zeitrechnungen anstellen müßen:
Ich habe den Code in PB übersetzt.
Die erste Procedur erwartet tag,monat,jahr und gibt die Zahl des fortlaufenden Kalender zurück. Damit sind Zeitrechnungen möglich
(20.10.2003 minus 13.05.1973 wäre sonst schwer...).
Die zweite Procedur erwartet die gleichen Parameter und gibt den Tag zurück (montag o. dienstag o. ...).
Was jetzt fehlt ist eine Procedur, die die erste umkehrt, also sollte die Zahl des forlauf.Kalender erwarten und das normale Datum zurückgeben.
Hat jemand eine Idee?
Procedure.l FortlaufKal(d.b, m.w, y.w)
If m.w <3
y.w=y-1
m.w=m+12
EndIf
a.w=Int(y/100)
b=2-a+Int(a/4)
zahl.l=Int(365.25*(y+4716))+Int(30.6001*(m+1))+d+b-1524
ProcedureReturn zahl
EndProcedure
Procedure.s TagDerWoche(d.b, m.w, y.w)
If m.w <3
y.w=y-1
m.w=m+12
EndIf
a.w=Int(y/100)
b=2-a+Int(a/4)
zahl.l=Int(365.25*(y+4716))+Int(30.6001*(m+1))+d+b-1524
zahl=IMod(zahl,7)
Select zahl
Case 0
tag.s="Montag"
Case 1
tag.s="Dienstag"
Case 2
tag.s="Mittwoch"
Case 3
tag.s="Donnerstag"
Case 4
tag.s="Freitag"
Case 5
tag.s="Samstag"
Case 6
tag.s="Sonntag"
EndSelect
ProcedureReturn tag
EndProcedure
Mit fernem Wasser läßt sich nicht ein nahes Feuer löschen.
Tsue Hung (525 n.Chr.).