Wie berechne ich das Datum des letzten Tag eines Monats?
Hi,
ich möchte eine Variable, die einen monatlichen Zahlungstermin beschreibt noch etwas genauer definieren.
Aktuell sieht die Variable so aus:
myDate := date(year(myDate), month(myDate) + 1, day(myDate)
Das funktioniert für die Tage 1 - 28 sehr gut, bei den Tagen 29 bis 31 wird es dann aber wieder schwierig.
Vielen Dank,
Frederik
4 Antworten
-
Hallo Frederik,
date(year(Datum), month(Datum),0)
verweist auf den Monatsletzten des Vormonats. Wenn bspw. Datum = 6.3.2020 wäre das Ergebnis 29.02.2020.
lg, Torsten
-
Hallo Torsten,
die Formel habe ich auch schon gesehen. Das passt aber leider nicht ganz zu der Anwendung. Wenn das erste Datum der 6.3.2020 ist, soll das folgende Datum der 6.4.2020 sein. (Fall 1)
Wenn das erste Datum der 31.1.2020 ist, soll das folgende Datum der 28.2.2020 sein. (Fall 2)
Mit deiner Formel komme ich also vielleicht bei Fall 2 weiter, aber nicht bei Fall 1.
Gibt es dafür eine charmante Lösung? Falls es sehr kompliziert wird, kann ich auch drauf verzichten und in diesem Feld einfach keine Daten größer 28 angeben. Es ist nur so, dass jeder Anbieter an einem anderem Tag abbucht und manche halt immer am Monatsende. Genaugenommen am letzten Wochentag des Monats aber das führt dann wirklich zu weit.
Grüße,
Frederik
-
Folgemonat und letzter Werktag(?) ließen sich auch noch ergänzen. Wobei ich der Einfachheit halber die Grenze bei 27 setzen würde:
let nextDate := if day(Datum) > 27 then
date(year(Datum), month(Datum) + 2, 0)
else
date(year(Datum), month(Datum) + 1, day(Datum))
end;
if weekday(nextDate) > 4 then
if weekday(nextDate) > 5 then
nextDate := nextDate - 2
else
nextDate := nextDate - 1
end
end;
nextDate
-
Super, danke!
Content aside
- vor 4 JahrenZuletzt aktiv
- 4Antworten
- 1908Ansichten