Fuerchau
04-07-18, 13:49
Ich habe mir da mal eine "DateSerial"-Funktion gebastelt (aus VBA):
MyDate = %date('0001-01-01') + %Years(n - 1) + %Months(n - 1) + %days(n - 1);
Der Vorteil dieser Basis-Funktion ist ebenso, dass "n" einen beliebigen Wert +/-, also auch 0 enthalten kann.
Beispiel:
MyDate = %date('0001-01-01') + %Years(2018 - 1) + %Months(6 - 1) + %days(0 - 1);
Ergebnis => 2018-05-31
Und somit lässt sich deine Anforderung auch relativ leicht ohne Hilfsvariablen rechnen:
MyDate = %date('0001-01-01') + %years(%subdt(%date:*YEARS) - 2);
PS:
Die Funktion mittels dem "work = '01.01.' + %char(jjjj);" funktioniert nur, wenn das Datumformat des Programmes auf *EUR steht. Ich würde hier grundsätzlich *ISO empfehlen.
MyDate = %date('0001-01-01') + %Years(n - 1) + %Months(n - 1) + %days(n - 1);
Der Vorteil dieser Basis-Funktion ist ebenso, dass "n" einen beliebigen Wert +/-, also auch 0 enthalten kann.
Beispiel:
MyDate = %date('0001-01-01') + %Years(2018 - 1) + %Months(6 - 1) + %days(0 - 1);
Ergebnis => 2018-05-31
Und somit lässt sich deine Anforderung auch relativ leicht ohne Hilfsvariablen rechnen:
MyDate = %date('0001-01-01') + %years(%subdt(%date:*YEARS) - 2);
PS:
Die Funktion mittels dem "work = '01.01.' + %char(jjjj);" funktioniert nur, wenn das Datumformat des Programmes auf *EUR steht. Ich würde hier grundsätzlich *ISO empfehlen.