Letzter Tag im Monat

Hallo,

wie kann ich per Formel den letzten Tag im Monat heraus finden.

Beispiel:
Mir liegt ein Datum vor z.B. 21.07.2020
zu diesem Datum muss ich nun heraus finden ob der Juli 31 oder 30 Tage hat. Danke!

Hallo Thomas,

willkommen im List & Label-Forum.

Hier eine Formel, die mit Sicherheit noch eleganter sein könnte :wink:

Day(AddDays(Date(“01.” + ToString$(Month(AddMonths(Date(“21.07.2020”), 1))) + “.2020”), -1))

Sinn: Addiere auf den Monat des Datums +1, baue daraus ein Datum (hier der 01.08.2020), ziehe davon einen Tag ab und gib dann den Tag des resultierenden Datums numerisch zurĂĽck.

Edit: Es gab noch eine kleine Anpassung der Formel

Hier noch meine Lösung, die ich immer verwende. Natürlich je nach Programmiersprache eine andere Implementierung.
Grundsätzlich auch so ähnlich wie von Patrick.

  • Monatsersten berechnen
  • 31 Tage drauf rechnen
  • den neuen Tag vom neuen Datum abziehen
  • das ergibt den Monatsletzten

Hier mal mit zwei Benutzervariablen:
@Datum: Today()
@Monatsletzter: DateYMD(Year(@Datum),Month(@Datum),1) + 31 - Day(DateYMD(Year(@Datum),Month(@Datum),1) + 31 )

Hier mal mit Progress OpenEdge 4GL:
DEFINE VARIABLE Datum AS DATE NO-UNDO INIT TODAY.
DEFINE VARIABLE Monatsletzter AS DATE NO-UNDO.

Monatsletzter = DATE (MONTH(Datum),1,YEAR(Datum)) + 31 - DAY (DATE(MONTH(Datum),1,YEAR(Datum)) + 31).

1 Like