Tag einer Kalenderwoche berechnen
Hallo,
gibt es eine Möglichkeit, beispielsweise den ersten Tag (Montag) einer bestimmten Kalenderwoche zu berechnen? Ich habe im Handbuch keine entsprechende Funktion gefunden. Hat jemand eine Idee?
Vielen Dank!
Beste Grüße
André
11 Antworten
-
Also mir fällt jetzt nur spontan der etwas umständliche Weg ein: Aktuelle Kalenderwoche mittels "week" ermitteln, den aktuellen Tag ermitteln und mittels "case" an Hand des Tages-Index das Datum des Montags der aktuellen Woche ermitteln und dann für eine andere Kalenderwoche in der Zukunft den "aktuellen Montag" mit x * 7 Tage berechnen. Das geht aber bestimmt auch einfacher, oder?
-
Hallo André,
---
today()-weekday(today())
---
Leo
-
Sorry, habe Die Frage erst jetzt zu ende gelesen. Angenommen KW als Zahlenwert. Dann die Formel für ein Berechnungsfeld
---
let FD := date(year(today()), 1, 1);
let myM := if weekday(FD) > 3 then FD + weekday(FD) - 1 else FD + weekday(FD) end;
myM + KW * 7 - 7---
Leo
-
Super Lösung. Meine wäre viel komplizierter gewesen.
-
Obwohl - das funktioniert scheinbar nur in Jahren (wie 2018), wo der 1. Januar ein Montag ist. Oder?
-
Sollte eigentlich in allen Jahren funktionieren. Nach ISO ist die erste KW die die ein Donnerstag beinhaltet. Deswegen die Prüfung ob der Erste Januar größer als Donnerstag(3) ist. Wenn JA dann ist der nächste Montag der erste im Jahr (FD + weekday(FD) - 1) wenn nein dann der Vorherigen (FD + weekday(FD)). Und dann die Formel für KW.
Aber wenn ich mir es so überlege, wäre vielleicht besser Donnerstag auch mitzuberücksichtigen, also:
let FD := date(year(today()), 1, 1);
let myM := if weekday(FD) >= 3 then FD + weekday(FD) - 1 else FD + weekday(FD) end;
myM + KW * 7 - 7
Leo
-
Ich hab's jetzt ähnlich gemacht, allerdings gleich ein numerisches Feld für das Jahr berücksichtigt (z. B. Lieferung 3. KW im nächsten Jahr), und so scheint es zu funktionieren:
let Startdatum := date(Jahr, 1, 1);
let Starttag := weekday(Startdatum);
let KWStart := if Starttag > 0 then Startdatum - Starttag else Startdatum end;
KWStart + KW * 7 - 7
-
Habe bei Wikipedia nachgeschaut: "Der 4. Januar ist immer in Kalenderwoche 1." . Es wäre sinnvoll auch ein Jahr bei KW zu schreiben. Bei einem separaten Zahlenfelt "Jahr" wäre die Formel
---
date(Jahr, 1, 4)-weekday(date(Jahr, 1, 4)+KW*7-7
---
Noch einfacher geht nicht ;-)
Leo
-
Klammern vergessen
date(Jahr, 1, 4)-weekday(date(Jahr, 1, 4))+KW*7-7
Leo
-
Perfekt!
-
Genial, vielen Dank!
André
Content aside
- vor 6 JahrenZuletzt aktiv
- 11Antworten
- 3619Ansichten