Autor Thema: Anmerkung zu: [LotusScript, Formelsprache]: Kalenderwoche: Berechnung mit Formel  (Gelesen 12047 mal)

samWare

  • Gast
Hallo Leute,

ich hab gerade diesen tollen Artikel gelesen und da ist mir eingefallen dass ich vor längerer Zeit (war mein erster Post) mal eine sehr sehr nützliche Formel zum Thema Kalenderberechnung geschrieben habe.

Sie liefert zwar nicht die KW, aber dafür >> den Montag << einer angegebenen KW und dem angegebenen Jahr. Vllt. eine Ergänzung zu dem Thread :-:

Post ist hier zu finden.
« Letzte Änderung: 07.09.09 - 15:04:55 von samWare »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Hi Sam (Samuel, Grigori Samowarski, Sam der farbige Pianospieler aus Casablanca - oder was?),

das ist eine gute Idee!

Mein Vorschlag (und dann füge ich das sofort ein!): Schmeiss das olle @Success aus Deiner Formel weg, das hat in der Formel nichts zu suchen und würde bei ggf. vorhandenen Fehlern in der Formel (okay, die können nicht sein, aber "Ordnung und Sauberkeit im Schlachthof"!!).
Weiters: Mach aus den vielen Zeilen wenige. Nutze @Word (beispielsweise) - wir sind da im "Best Practice"-Forum.

Prinzipiell ist Deine Ergänzung des "Umkehrschlusses" für die KW wirklich sehr gut! Bitte setze das um.

Vielen Dank im Voraus,
Bernhard

samWare

  • Gast
Hallo Bernhard,

hab nommel drübergeschaut und die Formel ein wenig gekürzt/verbessert.

Mein Name ist Samuel Menigat. (Sam der farbige Pianospieler aus Casablanca.. ROFLCOPTER)

Code
kwdays := ((kalenderwoche-1)*7);
fdate := @Date(jahr; 1; 1);
fday := @Weekday(fdate);

date := @If(fday=1; @Adjust(fdate; 0; 0; kwdays+1; 0; 0; 0); fday=2; @Adjust(fdate; 0; 0;  kwdays; 0; 0; 0); fday=3; @Adjust(fdate; 0; 0;  kwdays -1; 0; 0; 0);
fday=4; @Adjust(fdate; 0; 0;  kwdays-2; 0; 0; 0); fday=5; @Adjust(fdate; 0; 0; kwdays-3; 0; 0; 0); fday=6; @Adjust(fdate; 0; 0; kwdays+3; 0; 0; 0);
fday=7; @Adjust(fdate; 0; 0;  kwdays+2; 0; 0; 0); "");

Ich hoffe sie ist jetzt zu diener Zufriedenheit abgeändert... (Wenn man eigene @-Funktionen schreiben könnte währ das ding um die hälfte kürzer, aber Mann kann sichs ja nicht raussuchen :-:)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Hallo Samuel,

ich meinte eher sowas:
Code
_FirstDayOfYear := @Date (Year; 1; 1);

WeekNoMonday := @Adjust (_FirstDayOfYear; 0; 0; @Subset (@Subset (1 : 0 : -1 : -2 : -3 : 3 : 2; @Weekday (_FirstDayOfYear)); -1)  + ((WeekNo -1) * 7); 0; 0; 0);

@Prompt ([Ok]; "Ergebnis"; @Text (WeekNoMonday))

Der Charme liegt in dem Verzicht auf die dauernde Vergleicherei mit @If und @Weekday. Das ginge sogar noch kürzer, aber dafür funktioniert das obige Konstrukt auch noch mit R5 (und R2  ;D).

Was meinst Du? Du hast ja den Algorithmus ins Spiel gebracht.

Bernhard

samWare

  • Gast
Schaut doch gut aus ;D Meine "komplexe Logik" lässt da echt noch stark zu wünschen übrig  :-X :-\ Aber das kommt schon noch mit der Zeit...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Hi Sam,

wie versprochen, findest Du Deine "Kontribution" wie versprochen jetzt in den AtNotes "Best Practices" wieder: [LotusScript, Formelsprache]: Kalenderwoche: Berechnung mit Formeln und LS

Ich bin hier garantiert (!) nicht der einzige, der immer sehr froh ist über derartiges Engagement von Mitgliedern der AtNotes-Community! Danke, Sam!

Bernhard

PS: Wenn Du Anmerkungen zu meiner Einbindung Deines Beitrags im BP-Artikel hast, lass es mich bitte wissen. Immerhin bist Du nun ja Co-Autor.

samWare

  • Gast
Ne find ich toll so wie's ist  :love: :knuddel:

Thx fürs reinstellen  ;)
« Letzte Änderung: 07.09.09 - 10:45:34 von samWare »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz