recherche formule

Publié:
13 Nov 2003 à 11:11
par nicolas
Bonjour à tous. Mon problème est simple, je cherche une formule (@) permettant de récupérer le numéro de semaine correspondant à une date. Par exemple, pour le 13/10/2003 la formule retournerait la semaine n°42. Merci d´avance et bonne fin de semaine.
Re: recherche formule

Publié:
13 Nov 2003 à 12:31
par PAT
Fais une recherche dans ce forum, je crois que tu trouveras ta solution (je l'y ai deja vu et je crois me rappeler que cela soulevait un certain debat car l'algorythme peut varier selon certaines conventions sur la signification du no de semaine dans l'annee ...)
Re: recherche formule

Publié:
13 Nov 2003 à 13:56
par polbusse
Cette fonction retourne ne n° de semaine, il n'y a pas de semaine 53, le restant des jours de l'année sont inclu ds la 52.Function RecupNumeroSemaine(dateJour As Variant) As Integer On Error Goto ReturnZero Dim dt As NotesDateTime Set dt = New notesDateTime(dateJour) RecupNumeroSemaine = Format$(dt.lslocaltime, "ww") Exit Function '// Solution qui inclu la semaine 53 ds la 52. 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
Re: recherche formule

Publié:
20 Nov 2003 à 13:16
par Earthquake
voici comment récupérer le numéro de la semaine de l'année courantepjannee = premier jour de l'année calendaire.pjsemaine = Lundi de la prremiere semaine de l'année.86400 = 24 heures * 3600 secondes/heure/7 nombre de jours dans 1 semaine+1 = car la premiere semaine n'est pas la semaine 0.pjannee:=@Date(@Year(Semaine);1;1);pjsemaine:=@Adjust( pjannee ; 0 ; 0 ; -( @Weekday( pjannee ) -2 ) ; 0 ; 0 ; 0 );"Semaine "+@Text(@Round(@Integer((@Date(Semaine)-pjsemaine)/86400/7))+1)