petit algorithme qui teste si un nombre correspond à une date valide. Le format du nombre saisi doit être jjmmaaaa mais vous pouvez adapter ce code facilement pour tout autre format. Le code est fait pour accepter les années à partir de 1900, nombre que vous choisissez comme il vous plaît !
la fonction retourne ok qui vaut 0 si la date est validée, 1 sinon.
Source / Exemple :
Function verifdate(ByVal datesaisie As Integer)
Dim ok As Integer
ok = 0
'date sur 8 caractères
If datesaisie > 31129999 Or datesaisie < 1010000 Then
ok = 1
Else
'jour entre 1 et 31
Dim jour As Integer
jour = datesaisie / 1000000
If jour > 31 Or jour < 1 Then
ok = 1
Else
'mois entre 1 et 12
Dim mois As Integer
mois = datesaisie / 10000 - jour * 100
If mois > 12 Or mois < 1 Then
ok = 1
Else
'annee à partir de 1900
Dim annee As Integer
annee = datesaisie - jour * 1000000 - mois * 10000
If annee < 1900 Then
ok = 1
Else
'mois à 30 jours
If (mois = 2 Or mois = 4 Or mois = 6 Or mois = 9 Or mois = 11) And jour = 31 Then
ok = 1
Else
'cas particulier : février
Dim quotient As Integer = annee / 4
Dim quotient2 As Integer = annee / 400
If quotient * 4 = annee And quotient2 * 400 <> annee Then
If mois = 2 And jour > 29 Then
ok = 1
End If
Else
If mois = 2 And jour > 28 Then
ok = 1
End If
End If
End If
End If
End If
End If
End If
Return ok
End Function
Conclusion :
merci d'être indulgent, c'est le premier code que je met sur le site !
C'est peut être un peu long mais au moins c'est clair, je ne pense pas avoir oublié de cas.
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.