Page 1 sur 1

Calcul du N° de semaine

MessagePublié: 07 Juin 2005 à 15:39
par oguruma
myDate:=EV_Date;
TempYear := @Year(MyDate);
WeekEndDate := @Adjust(MyDate; 0; 0; @Modulo(13 - @Weekday(MyDate); 7); 0; 0; 0);
YearStartDate := @Date(TempYear; 1; 1);
Week := @Integer(((WeekEndDate - YearStartDate)/86400)/7)+1;
@If(Week>52;Week-52;Week)

Source : http://www.martinscott.com/DesignLibrar ... endocument

J'ai aménagé le calcul à propos de la détermination du jour de fin de semaine (@modulo)

MessagePublié: 13 Juil 2005 à 08:38
par oguruma
variante

DayYr := ((@now - @Date(@Year(@now); 1; 1)) / (60 * 60 * 24))+ 1;
Day1stWk := 13 - (@Weekday(@Date(@Year(@now); 1;1)));
@Integer(((DayYr - Day1stWk) + 6) / 7) + 1 ;

MessagePublié: 14 Août 2006 à 09:42
par Raziel
Salut Oguruma,

désolé de devoir te contredire mais ton calcul de semaine n'est pas correct.

cf post http://www.dominoarea.org/phpBB2/viewtopic.php?t=15115.

Avec ton code, on estime que :
-> le 01/01/2005 fait parti de la S1. Ce qui est faux car il fait parti de la S53.

-> le 01/01/2006 fait parti de la S1. Ce qui est faux car il fait parti de la S52.

Pour rappel, la semaine 1 contient tjs le 4 janvier.
Dis autement, la semaine 1 contient tjs le premier jeudi de l'année.

MessagePublié: 20 Août 2006 à 10:08
par oguruma
je connais le pb de la semaine à cheval et c'est bien là le pb
as-tu un contournement car il est bien beau de dire ça ne fonctionne pas
excuse moi pour cette réaction mais quand on dit ça ne marche pas j'aime en revanche une proposition de contournement

MessagePublié: 21 Août 2006 à 07:31
par Raziel
Salut,

y'a pas de mal.
Pour les formules, je n'ai pas de solutions de contournement. C'est la raison pour laquelle je passe par du LS et la fonction trouvée sur le site IBM

MessagePublié: 21 Août 2006 à 09:57
par Raziel

Calcul du N° de semaine..

MessagePublié: 12 Mars 2008 à 15:00
par adams&mallouka
bonjour ; perso j'ai eu le même problème lors de l'implémentation d'un agent manipulant le n° semaine pour la selection de documents pour alimenter en suite une vue "By Weekly"...
:idea: j'ai bricolé la solution suivante avec les @formules (bien qu'elle serait érronée dés la fin de 2043 ;ça déborde immédiatement du faite que 2044 serait bissextile...) :roll:

Annee:=@Year(@Today);
PJA:=@Weekday(@TextToTime("01/01/"+@Right(@Text(Annee);2)));
PremierJourS1:=@If(PJA=1;7;PJA-1);
NbreJourS1:=@If(PremierJourS1=1;7;PremierJourS1=2;6;PremierJourS1=3;5;PremierJourS1=4;4;PremierJourS1=5;3;PremierJourS1=6;2;1);
Jour:=@Day(@Today);
Mois:=@Month(@Today);
Bisextile:=@If(((Annee-2000)/4)=1|2|3|4|5|6|7|8|9|10;1;0);
NumeroJourAnnee:=@If(Mois=1;Jour+6-NbreJourS1;Mois=2;31+Jour+6-NbreJourS1;Mois=3;59+Bisextile+Jour+6-NbreJourS1;Mois=4;90+Bisextile+Jour+6-NbreJourS1;Mois=5;120+Bisextile+Jour+6-NbreJourS1;Mois=6;151+Bisextile+Jour+6-NbreJourS1;Mois=7;181+Bisextile+Jour+6-NbreJourS1;Mois=8;212+Bisextile+Jour+6-NbreJourS1;Mois=9;243+Bisextile+Jour+6-NbreJourS1;Mois=10;273+Bisextile+Jour+6-NbreJourS1;Mois=11;304+Bisextile+Jour+6-NbreJourS1;Mois=12;334+Bisextile+Jour+6-NbreJourS1;@ERROR);
NumeroSemaine:=@Integer((NumeroJourAnnee)/7)+1;
NumerosemainePourAgent:=@If(NumeroSemaine=52;1;NumeroSemaine=53;1;NumeroSemaine);


c un peut encombré; sinon j'ai testé en local ;et j'ai pas relevé d'anomlies.
la base en question est en cours de test de validation par mon encadreur.
vos critiques et commentaires me sont les bienvenus.