Best Practices > Diskussionen zu Best Practices

Anmerkung zu: [LotusScript, Formelsprache]: Kalenderwoche: Berechnung mit Formel

(1/2) > >>

samWare:
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.

koehlerbv:
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:
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); "");

--- Ende Code ---

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 :-:)

koehlerbv:
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))
--- Ende Code ---

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:
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...

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln