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

Struts 1 Java Discussion :

tester la validité d'une date en java


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2002
    Messages : 141
    Par défaut tester la validité d'une date en java
    bonjour,
    comment tester la validité d'une date avec java
    Merci

  2. #2
    Membre éclairé
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Par défaut
    salut

    Pense à
    Mais commme je suis bon Prince : http://java.developpez.com/faq/java/...rifierValidite

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    Tu peux faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    String pattern = "dd/MM/yyyy"; // A adapter à tes besoins, cf. google sur les patterns de date en java
    try {
    	DateFormat dateFormat = new SimpleDateFormat(pattern);
    	dateFormat.setLenient(false);
            dateFormat.parse(date);
    	// ton code si date ok ...
    }  catch (Exception e) {
    	// La date ne matche pas le pattern
    	// ton code si date non valide ...
    }
    P.S. : CPI, c'est normal qu'il y ait 3 fautes d'orthographe dans ta signature ?

  4. #4
    Membre éclairé
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Par défaut
    Citation Envoyé par mixouille
    P.S. : CPI, c'est normal qu'il y ait 3 fautes d'orthographe dans ta signature ?
    ha?? si c'est normal?? bah plus ou moins.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2002
    Messages : 141
    Par défaut
    Citation Envoyé par mixouille
    Tu peux faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    String pattern = "dd/MM/yyyy"; // A adapter à tes besoins, cf. google sur les patterns de date en java
    try {
    	DateFormat dateFormat = new SimpleDateFormat(pattern);
    	dateFormat.setLenient(false);
            dateFormat.parse(date);
    	// ton code si date ok ...
    }  catch (Exception e) {
    	// La date ne matche pas le pattern
    	// ton code si date non valide ...
    }
    P.S. : CPI, c'est normal qu'il y ait 3 fautes d'orthographe dans ta signature ?
    je vais tester ton code et t'informer du resultat.
    merci pour ton effort.

  6. #6
    Membre averti
    Inscrit en
    Août 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 22
    Par défaut Solution avec les RegEx et pattern
    Sinon tu peux faire ca avec les expression regulieres et ces deux imports
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    apres tu verifies dans ta fonction validate de ton Formulaire comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    public ActionErrors validate( ActionMapping m, HttpServletRequest r) {
     
    		ActionErrors errors = new ActionErrors();
     
    		Pattern datePattern;
                    Matcher matcher;
     
                    String jj;
    		String mm;
    		String yyyy;
     
                    datePattern = Pattern.compile("^(\\d{2})/(\\d{2})/(\\d{4})$");
     
                    matcher = datePattern.matcher(Date.trim());
     
                    if(!matcher.find()) {
    			errors.add("Date", new ActionMessage("errortype"));
                            // ici donc traitement qd il n'a pas trouvé
    		}
     
                     if(matcher.find()) {
                            // on teste les champs precisement
                            jj = matcher.group(1);
    			mm = matcher.group(2);
    			yyyy = matcher.group(3);
     
                            if( Integer.valueOf(jj) <0 || Integer.valueOf(jj)>31 
    			|| Integer.valueOf(mm) <0 || Integer.valueOf(mm)>12	
    			|| Integer.valueOf(yyyy) <1970)
    					{
                            {
                            errors.add("Date", new ActionMessage("errortype"));
                            // ici donc traitement qd il n'a a trouvé un bon format mais 
                            // les informations dd/mm/yyyy ne sont pas bonne
                            }
     
                     }
    return errors;
    }
    Voila moi j'utilise cela et ca marche tres bien.

    Dis moi si tu comprends pas tout.

    Mat

Discussions similaires

  1. [VB.NET] Comment tester la validité d'une date ?
    Par Zefree dans le forum ASP.NET
    Réponses: 5
    Dernier message: 15/12/2012, 15h49
  2. Réponses: 10
    Dernier message: 16/05/2008, 19h29
  3. Tester la validité d'une date
    Par souminet dans le forum Débuter
    Réponses: 5
    Dernier message: 13/05/2008, 16h58
  4. Tester la validité d'une date
    Par youcef_b_dz dans le forum Débuter
    Réponses: 1
    Dernier message: 09/02/2008, 17h20
  5. Réponses: 1
    Dernier message: 23/11/2006, 14h02

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