Renvoi du numéro de semaine (bogue du 29 décembre 2003)

Contenu du snippet

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

A voir également

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.