Salut,
J'ai une méthode qui valide une date (doit être au format jours.mois.année et doit être dans le passé), la voila :
Ça marche bien ! Seulement j'ai remarqué qu'on pouvait dépasser les jours et les mois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 private boolean dateValide() { try { ParsePosition pos = new ParsePosition(0); DateFormat format = new SimpleDateFormat("dd.MM.yyyy" ); Date date = format.parse(tfDate.getText(), pos); if (date.before(new Date()) && pos.getIndex() == tfDate.getText().length()) { return(true); } } catch (Exception e) {} return(false); }
Par exemple si je fais un print de ma date parsée :
Avec 31.12.2009 j'obtiens
Ça c'est normal !Sat Dec 31 00:00:00 CET 2009
Mais avec 32.12.2009 j'obtiens
Avec 31.13.2009 j'obtiensFri Jan 01 00:00:00 CET 2010
Vous voyez ça a dépassé. Comment pourrais-je modifier ma méthode pour que ça ne parse que des dates valides ? En gros je voudrais qu'une date qui n'existe pas déclenche l'exception au lieu que ça parse en faisant le dépassement !Sun Jan 31 00:00:00 CET 2010
Merci
Partager