Controle de date par java

Fermé
ala91 Messages postés 11 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 16 mars 2012 - Modifié par ala91 le 7/03/2012 à 11:27
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 - 29 nov. 2012 à 23:23
Bonjour,


j'ai fait un programme et dans ce programme je doit
1- vérifier est ce que les caracteres saisis par les uilisateur dans un textfield1 sans des date (c'est a dire ils ont la forme de date , si les caractères saisis dans ce textfield1 sont parexemple (20/20/1980) le champ mois est faut donc y'auras un message d'erreur ).
j'utilise NetBeans.

j'aimerais avoir une réponse

et merci ..
A voir également:

1 réponse

bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 859
Modifié par bizu53 le 29/11/2012 à 23:23
En utilisant un objet DateFormat tu peux vérifier par toi-même la valeur. (Je ne sais plus bien si on peut mettre un format directement sur le JTextField pour qu'il le vérifie tout seul par lui-même.)

public static void main(final String[] args) { 
 final DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); 
 { 
  final String text = "20/10/1980"; 
  try { 
   final Date date = df.parse(text); // ok 
   System.out.println(date); 
  } catch (final ParseException e) { 
   System.out.println("Date refusée : " + text); 
  } 
 } 

 { 
  final String text = "20-10-1980"; 
  try { 
   final Date date = df.parse(text); // ne respecte pas le format => ParseException 
   System.out.println(date); 
   System.out.println(df.format(date)); 
  } catch (final ParseException e) { 
   System.out.println("Date refusée : " + text); 
  } 
 } 

 { 
  final String text = "20/20/1980"; 
  try { 
   // respecte le format mais à refuser 
   // la méthode parse retourne une date calculée qui est, selon SimpleDateFormat, équivalente (par exemple 32/13/1980 => 01/02/1981) 
   final Date date = df.parse(text); 

   final String s = df.format(date); 
   if (s.equals(text)) { // (il doit y avoir un moyen plus "propre" que de reformater la date en String mais je ne connais pas et n'ai pas cherché) 
    System.out.println(date); 
   } else { 
    System.out.println(s); 
    System.out.println("Date refusée : " + text); 
   } 
  } catch (final ParseException e) { 
   System.out.println("Date refusée : " + text); 
  } 
 } 
}


(Je déterre, ça peut toujours servir)
0