Calcul du N° de semaine

Toutes les astuces sur le langage de formule

Calcul du N° de semaine

Messagepar oguruma » 07 Juin 2005 à 15:39

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)
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Messagepar oguruma » 13 Juil 2005 à 08:38

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 ;
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Messagepar Raziel » 14 Août 2006 à 09:42

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

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Messagepar oguruma » 20 Août 2006 à 10:08

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
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Messagepar Raziel » 21 Août 2006 à 07:31

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
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Messagepar Raziel » 21 Août 2006 à 09:57

Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Calcul du N° de semaine..

Messagepar adams&mallouka » 12 Mars 2008 à 15:00

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.
adams&mallouka
 


Retour vers Formula