Si vous regardez votre calendrier, vous verrez que :
- le premier janvier n'est pas toujours dans la semaine 1
- le 29 décembre 2003 est en semaine 1 ; et lorsque l'on code on le retrouve en semaine 53 (bogue)
Voici deux petites fonctions qui renvoient les bons numéros de semaine et d'année, pour les Français.
Source / Exemple :
Function TrouveSemaineDeLaDate(ByVal DateConcernee As Date) As String
' Bogue du lundi 29 décembre 2003 qui est compté en semaine 53 au lieu de semaine 1
If Format(DateConcernee, "dd/mm/yyyy", vbMonday, vbFirstFourDays) = "29/12/2003" Then
TrouveSemaineDeLaDate = "01"
Else
TrouveSemaineDeLaDate = Format(Format(DateConcernee, "ww", vbMonday, vbFirstFourDays), "00")
End If
End Function
Function TrouveAnneeDeLaDate(ByVal DateConcernee As Date) As String
' Bogue du lundi 29 décembre 2003 qui est compté en semaine 53 au lieu de semaine 1
If Format(DateConcernee, "dd/mm/yyyy", vbMonday, vbFirstFourDays) = "29/12/2003" Then
TrouveAnneeDeLaDate = "2004"
Else
TrouveAnneeDeLaDate = Format(DateConcernee, "yyyy", vbMonday, vbFirstFourDays)
End If
End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.