Valider une date jj/mm/aaaa

Soyez le premier à donner votre avis sur cette source.

Snippet vu 24 515 fois - Téléchargée 29 fois

Contenu du snippet

Ce code est une modification d'un source fait par seren (bon boulot mec) mais il manqué un contrôle IsDate pour les années bissextile ou par exemple pour un 31/04.

j'ai egalement préfére le format jj/mm/aaa ... a part ça, peu de changement sur son code qui marche tres bien.

Merci Seren ;o)

Source / Exemple :


<%
'Fonction de vérification de date au format JJ/MM/AAAA
Function checkdate(d)

res=InStr(d,"/")
If res>0 Then
    jour=Mid(d,1,res-1)
    If IsNumeric(jour) Then
        If jour>0 And jour<32 Then
            res2=InStr(res+1,d,"/")
            If res2>0 Then
                mois=Mid(d,res+1,res2-res-1)
                If IsNumeric(mois) Then
                    If mois>0 And mois<13 Then
                        an=Mid(d,res2+1,Len(d))
                        If IsNumeric(an) Then
                            If an<2099 Then
                                msg="Format valide" 
                            Else
                                msg="Année non valide"
                            End If
                        Else
                            msg="Année non valide"
                        End If
                    Else
                        msg="Mois non valide"
                    End If
                Else
                    msg="Mois non valide"
                End If
            Else
                msg="Format non valide (JJ/MM/AAAA)"
            End If
        Else
            msg="Jour non valide"
        End If
    Else
        msg="Jour non valide"
    End If
Else
msg="Format non valide (JJ/MM/AAAA)"
End If
If msg<>"Format valide"  Then
checkdate=msg
Response.Redirect("erreur.asp")
Else
checkdate=True
If  IsDate(d) = False Then
Response.Redirect("erreur.asp")
End If
End If

End Function 
%>

A voir également

Ajouter un commentaire

Commentaires

Messages postés
30
Date d'inscription
lundi 10 février 2003
Statut
Membre
Dernière intervention
27 juin 2008

Salut Warny,
Ne serait-ce pas Session.LCID que tu aimerais utiliser ?
if Navigateur = "Fr" then
Session.LCID = 4108
else... (ou select case)
Messages postés
473
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
10 juin 2015

Salut,
Le problème de ta fonction est qu'elle ne suit que le système de date français. On peut avoir besoin de dates au format américain (mm/dd/yyyy) au format suisse (dd-mm-yyyy) ou les plus exotiques du monde.
Je suis plus partant pour des fonctions simple, mais si elle ne donnent pas la position de l'erreur. Du genre :

On error resume next
server.language
d = Cdate(d)
if err.number <> 0 then
'on gère l'erreur, la date est fausse
end if
On error goto 0

comme ça d devient une date à part entière, plus maniable que n'importe quelle chaine de caractère.
Si quelqu'un connait le truc qui permet de supplanter les valeurs de format système en fonction de la langue renvoyée par le navigateur, je suis preneur.

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.