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 :

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);
    }
Ça marche bien ! Seulement j'ai remarqué qu'on pouvait dépasser les jours et les mois.
Par exemple si je fais un print de ma date parsée :

Avec 31.12.2009 j'obtiens

Sat Dec 31 00:00:00 CET 2009
Ça c'est normal !

Mais avec 32.12.2009 j'obtiens

Fri Jan 01 00:00:00 CET 2010
Avec 31.13.2009 j'obtiens

Sun Jan 31 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 !

Merci