Contole en java
assia6
Messages postés
40
Date d'inscription
Statut
Membre
Dernière intervention
-
sandul Messages postés 3927 Date d'inscription Statut Membre Dernière intervention -
sandul Messages postés 3927 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
quelqun peut m aider comment effectuer un controle sur une date introduite?
j utilise [java] (Eclipse)
merci
quelqun peut m aider comment effectuer un controle sur une date introduite?
j utilise [java] (Eclipse)
merci
A voir également:
- Contole en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
6 réponses
Salut,
Pour compléter la réponse de Dan: on pourrait également faire un unique contrôle en utilisant un SimpleDateFormat avec, comme indiqué plus haut, un lenient à false. Exemple (pour un tableau de 4 éléments):
==> sortie à la console:
++
Pour compléter la réponse de Dan: on pourrait également faire un unique contrôle en utilisant un SimpleDateFormat avec, comme indiqué plus haut, un lenient à false. Exemple (pour un tableau de 4 éléments):
String[] dates = new String[] {"2009-11-06","2009-11-31","2009-1d1-06","200911-06"}; java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd"); df.setLenient(false); for (int i=0; i<dates.length; i++) { try { df.parse(dates[i]); } catch (java.text.ParseException e) { System.out.println("Date inacceptable: " + dates[i]); // e.printStackTrace(); } }
==> sortie à la console:
Date inacceptable: 2009-11-31 Date inacceptable: 2009-1d1-06 Date inacceptable: 200911-06
++
slt sandul, vs m avez donné un exemple avc 4 dates!!! ds une table hors moi je recupere ma date par un jTextField!!dslée je vois encore les choses en flou!!j n arrive pas à m en sortir!!merci
Les 4 dates dans un tableau ==> un exemple pour voir comment ça marche et quels sont les résultats avec différents inputs. Aucunement obligée de faire du copier-coller, tu sais ^^
Imagine maintenant que ton tableau a un seul élément (=à ta valeur que tu récupères avec un appel à getMonJTextField.getText()) ==> tu élimines la boucle for et le problème est résolu. Je t'ai donné tout ce dont tu as besoin, car tu garderas uniquement ceci
Alors ?
Imagine maintenant que ton tableau a un seul élément (=à ta valeur que tu récupères avec un appel à getMonJTextField.getText()) ==> tu élimines la boucle for et le problème est résolu. Je t'ai donné tout ce dont tu as besoin, car tu garderas uniquement ceci
java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd"); df.setLenient(false); try { // ici tu remplaces getMonJTextField avec la bonne méthode df.parse(getMonJTextField().getText()); } catch (java.text.ParseException e) { // et ici tu annonces l'utilisateur qu'il a bu trop de Heineken // et que cha ne va pas !!! System.out.println("Date inacceptable: " + dates[i]); // e.printStackTrace(); }
Alors ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir,
Quel contrôle voudrais-tu implémenter sur ta date?
C'est une instance de Date?
Cordialement,
Quel contrôle voudrais-tu implémenter sur ta date?
C'est une instance de Date?
Cordialement,
Salut,
Tu peux d'abord contrôler le format de la date saisie en utilisant split("-") qui te permettra d'obtenir les 3 élements de la date.
Ensuite tu vérifies que tu obtiens bien 3 éléments (ce qui n'est vrai que si les 2 séparateurs - existent,
Puis tu verifies la longueur de ces 3 élements: 4 pour AAAA, 2 pour MM et JJ.
Il faut encore verifier que ces élements ne contiennent que du numérique.
Et comme je te conseille d'utiliser GregorianCalendar pour la suite du contrôle et que pour ce faire, il faut fournir 3 parametres int (disons p1 pour l'année, p2 pour le mois et p3 pour le jour) à GregorianCalendar, il faut profiter de la conversion String>>int pour en "catchant" savoir si c'est numérique ou pas.
Les autres contrôles seront éffectués À CONDITION D'UTILISER setLenient(false);
Si tu éprouves des difficultés envoi un petit (ou gros) S.O.S et nous en discuterons cas par cas.
Cordialement,
Dan
Tu peux d'abord contrôler le format de la date saisie en utilisant split("-") qui te permettra d'obtenir les 3 élements de la date.
Ensuite tu vérifies que tu obtiens bien 3 éléments (ce qui n'est vrai que si les 2 séparateurs - existent,
Puis tu verifies la longueur de ces 3 élements: 4 pour AAAA, 2 pour MM et JJ.
Il faut encore verifier que ces élements ne contiennent que du numérique.
Et comme je te conseille d'utiliser GregorianCalendar pour la suite du contrôle et que pour ce faire, il faut fournir 3 parametres int (disons p1 pour l'année, p2 pour le mois et p3 pour le jour) à GregorianCalendar, il faut profiter de la conversion String>>int pour en "catchant" savoir si c'est numérique ou pas.
Les autres contrôles seront éffectués À CONDITION D'UTILISER setLenient(false);
Si tu éprouves des difficultés envoi un petit (ou gros) S.O.S et nous en discuterons cas par cas.
Cordialement,
Dan