Ce code permet entre autre de vérifier une date. Il existe des codes similaires sur aspfr, mais elles ne géraient pas les années bissextiles...
Voilà, maintenant que c'est fait, profitez bien de cette source qui peut vous être fort utile :)
Pour l'utiliser la fonction, copiez ce code dans votre page ASP, puis faites-y appel comme ceci:
<%
'Ici, votre date est incorrecte... 2003 n'étant pas une année bissextile
if IsValidDate (2003, 02, 29) = false then
Response.write "Date Incorrecte"
else
Response.Write "Date Correcte"
end if
'En revanche 2004, l'est :)
if IsValidDate (2004, 02, 29) = false then
Response.write "Date Incorecte"
else
Response.Write "Date Correcte"
end if
%>
Source / Exemple :
<%
Function IsValidDate(tsYear, tsMonth, tsDay)
'Fonction permettant de valider une date, avec gestion des années bisextiles
'---------------------------------------------------------------------
' Paramètres :
' tsYear : Année (nombre entier)
' tsMonth : Mois (compris entre 1 et 12 inclus)
' tsDay : Jour (compris entre 1 et 31 inclus)
' Valeurs retournées :
' True : La date est valide
' False : La date est invalide
'----------------------------------------------------------------------
Dim AnneeBisexstile
IsValidDate =True
if isnumeric(tsYear) = false or isnumeric(tsMonth) = false or isnumeric(tsDay) = false then
IsValidDate = false
exit function
end if
if tsYear > 2099 then
IsValidDate = false
exit function
end if
if tsMonth > 12 or tsMonth < 1 then
IsValidDate = false
exit function
end if
if tsDay > 31 or tsDay < 1 then
IsValidDate = false
exit function
end if
Select case tsMonth
case 2
' Le mois de février peut avoir soit 28 jours, soit 29
' Tout dépend si l'année est bisextile ou pas
' Merci à garfield90 pour son aide :)
AnneeBisexstile = 0
if tsYear mod 4 = 0 then AnneeBisexstile = 1
if tsYear mod 100 = 0 then AnneeBisexstile = 0
if tsYear mod 400 = 0 then AnneeBisexstile = 1
if AnneeBisexstile = 1 then
'Année bisextile !!
if tsDay > 29 then
IsValidDate = false
exit function
end if
else
'Année non bisextile
if tsDay > 28 then
IsValidDate = false
exit function
end if
end if
case 4, 6, 9, 11
'On a 30 jours dans le mois...
if tsDay > 30 then
IsValidDate = false
exit function
end if
'case else
'Les tests ont déjà été effectués pour les mois de 31 jours :)
end select
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.