IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Pb de date: 28 ou 29 février?


Sujet :

ASP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 105
    Points : 71
    Points
    71
    Par défaut Pb de date: 28 ou 29 février?
    Bonjour,

    dans une de mes pages, je demande à l'utilisateur de saisir une date.
    Apres diverses pb, j'ai choisi de mettre trois champs (jour,mois,année).
    Ensuite, je crée ma date.
    Mais comment faire pour savoir si ma date est valide ?
    par exemple si l'utilisateur saisie 29/02/2003, cette date est fausse ! Il n'y a que 28 jours au mois de févier 2003 !!!

    Kelkul a une soluce ?

    Merci

    Kayser.
    Le temps c'est de l'argent !!!
    Pas d'anomalies, ni de girafes au Kenya !!! ;-)

  2. #2
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 105
    Points : 71
    Points
    71
    Par défaut
    Ah oui g oublié d vous dire.

    Pour faire ma date, j'utilise dateSerial.
    Et dateSerial(2003,2,29) me donne 01/03/2003 !!!
    Donc ke dois-je utiliser pour faire ma date et ensuite teste sa validité ?
    Le temps c'est de l'argent !!!
    Pas d'anomalies, ni de girafes au Kenya !!! ;-)

  3. #3
    Membre habitué
    Inscrit en
    Mars 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 116
    Points : 126
    Points
    126
    Par défaut
    tu pourrais faire un truc dans le style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     si (annee Mod 4) = 0) alors année bisextile
    Attention si l'année est un millénaire ex: 2000 alors ce n'est pas une année bisextile, faudrait voir aussi les autres conditions[/code]

    PS, j'ai rédigé mon post avant ton second envoi

  4. #4
    Membre éprouvé
    Avatar de jérôme
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 591
    Points : 1 071
    Points
    1 071
    Par défaut
    Teste ta chaine avec la fonction isdate() qui renvoie true ou false suivant le cas.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 105
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par jérôme
    Teste ta chaine avec la fonction isdate() qui renvoie true ou false suivant le cas.
    C'est ce ke je fais mais qd je testela fonction me retourne true alors que pour moi c'est false !!
    Car en fait la fonction transforme le "11/13/2003" en "13/11/2003".
    Comment faire pour ne pas avoir ce changement ?
    Le temps c'est de l'argent !!!
    Pas d'anomalies, ni de girafes au Kenya !!! ;-)

  6. #6
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2003
    Messages : 152
    Points : 248
    Points
    248
    Par défaut
    Attention si l'année est un millénaire ex: 2000 alors ce n'est pas une année bisextile
    En fait c'est les siecles et 2000 etait bien bisextile.

    1 siecle sur 4 est bisextile les 3 autres non.

    Donc 2000 l'etait
    2100 non
    2200 non
    2300 non
    2400 oui
    ....

    Pour les verifs d'années je m'etais fais une fonction pour compter le nombre de jours entre 2 dates ou j'avais du gerer justement toutes ces exceptions, au final c'est plus simple que ca 'nen a l'air, faut juste etre rigoureux pour ne rien oublier.

    Tu peux te faire un truc du meme style, tu switch sur les differents elements en appliquant les regles de nbre de jours en fonction des mois et années.

    Pour les bisextiles:

    modulo de 4
    substring des 2 dernier chiffre
    si ca donne 00 verifie modulo de 400 pour avoir une année bisextile.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Bug étrange Date et Février 2009
    Par molinos dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 31/03/2009, 13h46
  2. [PHP 5.3] [Dates] Mois de février 2009 à 29 jours
    Par Tomate251 dans le forum Langage
    Réponses: 2
    Dernier message: 20/03/2009, 11h51
  3. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 15h21
  4. Réponses: 3
    Dernier message: 06/05/2002, 18h24
  5. Réponses: 3
    Dernier message: 19/04/2002, 00h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo