Page 1 sur 1

recupération du numéro de semaine

MessagePublié: 12 Sep 2003 à 08:53
par polo-bis
Bonjour à tous,Quelqu'un saurait -il comment récupérer le numéro de semaine à partir d'une date donnée. En javascript ou par formule je suis preneur.

Re: recupération du numéro de semaine

MessagePublié: 12 Sep 2003 à 22:37
par Stephane Maillard
Bonjour,Exemple de code :Dim DebutPub As New NotesDateTime( VotreDate )Dim DebutYear As New NotesDateTime("01-01-" & Year(DebutPub.dateonly))result = (DebutPub.TimeDifference( DebutYear ) / (86400)) +1 result1= Weekday(DebutYear.DateOnly)result3=Cint ( ( (result - result1) +6) /7)If Year(DebutPub.dateonly)="2000" Then result3=result3+1End IfPrint result3Ou :Function RecupNumeroSemaine(dateJour As Variant) As Integer On Error Goto ReturnZero Const Janvier = 1, Fevrier = 2, Mars = 3, Avril = 4, Mai = 5, Juin = 6 Const Juillet = 7, Aout = 8, Septembre = 9, Octobre = 10, Novembre = 11 Const Decembre = 12 Dim i%, y%, m%, d%, Semaine%, Jours% Dim aMois(12) As Integer aMois(Janvier) = 31 aMois(Fevrier) = 28 aMois(Mars) = 31 aMois(Avril) = 30 aMois(Mai) = 31 aMois(Juin) = 30 aMois(Juillet) = 31 aMois(Aout) = 31 aMois(Septembre) = 30 aMois(Octobre) = 31 aMois(Novembre) = 30 aMois(Decembre) = 31 y% = Year(dateJour) m% = Month( dateJour) d% = Day( dateJour ) If y% Mod 4 = 0 Then aMois(Fevrier) = aMois(Fevrier) + 1 End If Jours% = Weekday( Datenumber(y%, 1, 1) ) + 1 For i% = 1 To m% - 1 Jours% = Jours% + aMois(i%) Next Jours% = Jours% + d% Semaine% = Jours% / 7 If Semaine% > 52 Then Semaine% = 1 RecupNumeroSemaine = Semaine% Exit Function ReturnZero: RecupNumeroSemaine = 0 Exit Function End Function[%sig%]

Re: recupération du numéro de semaine

MessagePublié: 15 Sep 2003 à 08:15
par Raziel
C'est du LS ça....Code interessant mais il y a plus simpledim aujourdhui as notesdatetimeset aujourdhui = new notesdatetime(now)msgbox format$(aujourdhui.lslocaltime, "ww") -> retourne le numéro de la semaine

Re: recupération du numéro de semaine

MessagePublié: 15 Sep 2003 à 08:51
par polo-bis
ok merci pour vos réponses les 2 fonctionnent très bien.

Re: recupération du numéro de semaine

MessagePublié: 15 Sep 2003 à 09:08
par Droad
Code interessant mais il y a plus simple:msgbox format$(now, "ww") ' -> retourne aussi le numéro de la semaine[%sig%]

Re: recupération du numéro de semaine

MessagePublié: 15 Sep 2003 à 16:28
par Stephane Maillard
Bonjour,Oui c'est pour éviter la semaine 53[%sig%]

Re: recupération du numéro de semaine

MessagePublié: 15 Sep 2003 à 16:33
par polo-bis
??il la considère comme la 52 ou comme la 1 ??

Re: recupération du numéro de semaine

MessagePublié: 15 Sep 2003 à 17:22
par Stephane Maillard
Bonjour,Cela dépend des règles utilisées, par exemple cette anée la semaine 52 commence le lundi 22 décembre et fini le mercredi 31, donc trois jour de trop. Quand on utilise la plupart des fonctions elle donne le lundi 29 comme la première semaine de l'année alors que c'est faux puisque c'est la 52.Il existe plusieurs règles :1) comme la première semaine de l'année est celle qui comporte quatre jours2)comme la première semaine commence le premier lundi après le 1er janvier, etc...Donc il faut des fonctions qui puisse s'adapter par rapport aux règles voulues. Même dans Notes quand on change le jour de départ on se retrouve avec une semaine 53 qui normalement n'existe pas puisque ces jour doivent être inclus dans la semaine 52 ou 1 suivant la règle retenue.[%sig%]