RecupNumeroSemaine
Cette fonction retourne le numéro de semaine par rapport à une date données.
Pour appeler la fonction :
' Le champs dateDebut est au format Temps (date seul)
varDate = RecupNumeroSemaine(doc.dateDebut(0))[syntax="ls"]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[/syntax]
Pour appeler la fonction :
' Le champs dateDebut est au format Temps (date seul)
varDate = RecupNumeroSemaine(doc.dateDebut(0))[syntax="ls"]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[/syntax]