Proc Gestern
Return Dt("getDate",0,dt("incDay",!now,-1))
EndProc
Proc Morgen
Return Dt("getDate",0,dt("incDay",!now,1))
EndProc
'Die ersten beiden Prozeduren sind nur aus Gründen der Bequemlichkeit drin.
'Man kann auch die Proc Heute mit entsprechenden Parametern +1/-1 aufrufen.
'Sinnvoll wäre z. B., diese beiden Prozeduren in eine Headerdatei zu schreiben:
'MORGEN = Dt("getDate",0,dt("incDay",!now,1));
'GESTERN = Dt("getDate",0,dt("incDay",!now,-1));
'Aufruf dann mit: Print ~MORGEN
'Man könnte hier natürlich noch einen optionalen Parameter für das Ausgabeformat einbauen.
'Das hab ich aber aus Gründen der besseren Übersichtlichkeit gelassen.
Proc Heute
If %pcount = 1
Parameters i%
ElseIf %pcount = 2
Parameters Datum$,i%
Else
Var i% = 0
EndIf
Return Dt("getDate",0,dt("incDay",!now,i%))
EndProc
Proc DatumPlus
Parameters d%,m%,j%,d$
Declare Date!
If %pcount = 3
'wenn kein Datum angegeben wird, wird das "Heute" verwendet
date! = !now
ElseIf %pcount = 4
date! = Dt("setDate",d$)
EndIf
Date! = dt("incDay",date!,d%)
Date! = dt("incMonth",date!,m%)
Date! = dt("incYear",date!,j%)
Return Dt("getDate",0,Date!)
EndProc
Proc DatumIntervall
Parameters D$,I%,Anzahl%
Var date! = Dt("setDate",D$)
WhileLoop 1,Anzahl% * I%,I%
Print Dt("getDate",0,dt("incDay",date!,&Loop)),&loop
'hier wäre eine Ausgabe z. B. in die Listboxliste natürlich sinnvoller
'AddString Dt("getDate",0,dt("incDay",date!,d%))
Wend
EndProc
Print "Gestern war " + Gestern()
Print "Heute ist " + Heute()
Print "Morgen ist " + Morgen()
Print
Print "Vor 5 Tagen war der " + Heute(-5)
Print "In 50 Tagen ist der " + Heute(50)
Print
Print "In 10 Tagen, 6 Monaten und 12 Jahren ist der " + DatumPlus(10,6,12)
Print "Vor 10 Tagen, 6 Monaten und 12 Jahren war der " + DatumPlus(-10,-6,-12)
Print "und das geht auch mit einem beliebigen Datum: " + DatumPlus(1,-6,2,"02.05.1999")
Print
Print "Taste drücken"
WaitKey
Print
Print "Eine Liste mit 14-täglichen Terminen ab dem 15.5.2013"
DatumIntervall("15.5.2013",14,10)
WaitInput
WaitInput