Das Notes Forum
Lotus Notes / Domino Sonstiges => Tipps und Tricks => Thema gestartet von: jr am 17.06.05 - 17:12:42
-
Hallo,
habe gerade den Eintrag zur Berechnung des Quartals gelesen und dachte mir, dass die Formel zur Berechnung der Kalenderwoche ganz gut dazu passt. Die habe ich vor etwa 7 Jahren bei meinem damaligen Arbeitgeber geschrieben, funktioniert aber heute immer noch... ;)
Also, wen's interessiert:
REM "Berechnung der Kalenderwoche des Tages >>Datum<<";
Datum := [tt.mm.jjjj];
Wochenstart := @Adjust(Datum; 0;0; -@Weekday(Datum)+@If(@Weekday(Datum)=1;-5;2); 0;0;0);
ErsterJanuar := @Date(@Year(Wochenstart); 1; 1);
ErsterWochentag := @Weekday(ErsterJanuar);
MinutenProTag := 60 * 60 * 24;
TagImJahr := (Wochenstart - ErsterJanuar) / MinutenProTag;
Kalenderwoche := 1 + @Round(TagImJahr / 7);
KW := @If((ErsterWochenTag *= 2:3:4) & (Kalenderwoche = 53); 1; Kalenderwoche);
@Text(KW) + " KW"
Viel Spaß,
Joachim
-
Kurz, knackig, übersichtlich - sehr gut !
Danke, Joachim - das wird sicherlich vielen hilfreich sein. Zwei Zeilen könnte man noch "einsparen", aber das würde der Performance kaum nützen, der Lesbarkeit jedoch schaden.
Bernhard
-
Kürzer geht immer (in einer Formel...): ;D ;D ;D
@Text(@If((@Weekday(@Date(@Year(@Adjust(Datum; 0;0; -@Weekday(Datum)+@If(@Weekday(Datum)=1;-5;2); 0;0;0)); 1; 1)) *= 2:3:4) & ((1 + @Round(((@Adjust(Datum; 0;0; -@Weekday(Datum)+@If(@Weekday(Datum)=1;-5;2); 0;0;0) - @Date(@Year(@Adjust(Datum; 0;0; -@Weekday(Datum)+@If(@Weekday(Datum)=1;-5;2); 0;0;0)); 1; 1)) / (60 * 60 * 24)) / 7)) = 53); 1; (1 + @Round(((@Adjust(Datum; 0;0; -@Weekday(Datum)+@If(@Weekday(Datum)=1;-5;2); 0;0;0) - @Date(@Year(@Adjust(Datum; 0;0; -@Weekday(Datum)+@If(@Weekday(Datum)=1;-5;2); 0;0;0)); 1; 1)) / (60 * 60 * 24)) / 7)))) + ". KW"
-
Genau deswegen sprach ich von der Lesbarkeit ;D
In einer Spaltenformel in einer seeehr grossen DB kann aber eine abgespeckte Fassung durchaus Sinn machen.
Nochmals danke, Joachim !
Bernhard
-
Danke, Joachim.
1. Frage: Ist die ISO-konform?
@Bernhard, kannst Du bitte noch einen Vergleich machen zu Deiner Formel?
AtNotes BP - Kalenderwoche: Berechnung mit Formeln und LS (http://www.atnotes.de/index.php?topic=20457.0)
Denn wenn diese hier besser ist und Deine Formel ersetzt, sollte man den BP-Artikel aktualisieren.
Danke,
Matthias
-
Hallo,
ich kannte die ISO-Formel nicht, deshalb habe ich einmal ein paar Termine durchgerechnet und siehe da, ein paar stimmten nicht... :(
Also habe ich noch mal schnell die Formel oben korrigiert. Jetzt stimmt Sie in allen Terminen mit dem Kalender überein.
Gruß,
Joachim
-
Also habe ich noch mal schnell die Formel oben korrigiert. Jetzt stimmt Sie in allen Terminen mit dem Kalender überein.
Cool, danke.
Ich habe mir (1) Deine Formel im Vergleich zu ISO 8601:1988 angesehen und (2) ein paar Tests (gerade Ende/Anfang eines Jahres) gemacht: konnte keine Fehler feststellen, ich denke die @Formula ist voll ISO-konform.
Danke nochmal dafür, ist eine sehr schöne Lösung. Ich werde anregen/veranlassen, dass der BP-Beitrag zu KW (http://www.atnotes.de/index.php?topic=20457.0) entsprechend aktualisiert und Deine Formel eingesetzt wird.
Wie möchtest Du als Autor erwähnt werden: möchtest Du auch, dass Dein Nachname, evtl. noch Website etc. erscheint, oder nur Dein Vorname "Joachim" ?
Matthias
-
Hi,
den BP-Artikel Kalenderwoche (http://www.atnotes.de/index.php?topic=20457.0) habe ich entsprechend geändert. Auch von mir nochmals vielen Dank für deine Mitarbeit.
Axel
-
DANKE an jr !!
nun kann ich meinen selfmade-Gruppenkalender endlich um die KW erweitern...