title image


Smiley Diese Formel sollte passen...
Hallo,



Ich habe ebenfalls eine Funktion benötigt, die mir die Kalenderwoche berechnet und sie mir, da ich ebenfalls nichts fertiges gefunden habe, selbst gestrickt. Die folgende Formel berechnet die Woche nach ISO 8601 (die 1. Kalenderwoche ist die des ersten Donnerstages im Januar).



Ich habe die Formel mit mehreren Daten getestet, ich denke, sie passt so.





VJErster:=@TextToTime("01.01."+@Text(@Year(Datum)-1));

VJErsterWT:=@Weekday(VJErster);

VJTageBisDonnerstag:=@If(VJErsterWT<=5;5-VJErsterWT;12-VJErsterWT);

VJErsterDonnerstag:=@Adjust(VJErster;0;0;VJTageBisDonnerstag;0;0;0);

VJBeginnErsteWoche:=@Adjust(VJErsterDonnerstag;0;0;-3;0;0;0);



Erster:=@TextToTime("01.01."+@Text(@Year(Datum)));

ErsterWT:=@Weekday(Erster);

TageBisDonnerstag:=@If(ErsterWT<=5;5-ErsterWT;12-ErsterWT);

ErsterDonnerstag:=@Adjust(Erster;0;0;TageBisDonnerstag;0;0;0);

BeginnErsteWoche:=@Adjust(ErsterDonnerstag;0;0;-3;0;0;0);



Differenz:=@If(Datum


FIELD Woche:=@Integer(Differenz)+1;





Zur Erklärung: Zunächst bestimme ich den ersten Donnerstag im Januar und auf Basis dessen den ersten Tag der 1. Kalenderwoche.



Um die laufende Woche zu bestimmen muss dann nur noch die Differenz in Tagen/Wochen zwischen dem gewünschten Datum und dem ersten Tag der 1. Kalenderwoche bestimmt werden.



Tage am Jahresanfang können auch noch zum letzten Jahr zählen, deswegen wird bei Bedarf auf Basis des ersten Tages der 1. Kalenderwoche des Vorjahres gerechnet.



Gruß,

Gregor

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: