Salut,
// Tout d'abord pour info:
// -savoir si une annee est bissextile
String laDate = "17/11/2012";
int lAnnee;
lAnnee = Integer.parseInt(laDate.substring(6));
GregorianCalendar gcal = new GregorianCalendar(); //import java.util.GregorianCalendar;
boolean b = gcal.isLeapYear(lAnnee); // annee bissextile = true
if (b)
System.out.println("\nL'annee " + lAnnee + " est bissextile.");
else
System.out.println("\nL'annee " + lAnnee + " n'est pas bissextile.");
// -Maintenant pour savoir si une date saisie est correcte:
String laDateSaisie = "29/02/2009"; // en supposant que la date est saisie correctement
// il faut fournir a GregorianCalendar les 3 parametres int p1, int p2, int p3
// dans l'ordre p1 = aa, p2 = mm et p3 = jj
// par exemple
int p1 = Integer.parseInt(laDateSaisie.substring(6));
int p2 = Integer.parseInt(laDateSaisie.substring(3, 5));
int p3 = Integer.parseInt(laDateSaisie.substring(0, 2));
System.out.println("\np1/p2/p3 " + p1 + "/" + p2 + "/" + p3);
GregorianCalendar gc = new GregorianCalendar(p1, p2 -1, p3); // -1 car mois est une valeur 0 a 11
gc.setLenient(false); // sans cette ligne, pas d'exception possible
try
{ // (true par defaut)
int annee = gc.get(GregorianCalendar.YEAR);
int num_mois = gc.get(GregorianCalendar.MONTH);
int jour = gc.get(GregorianCalendar.DAY_OF_MONTH);
System.out.println("jour/num_mois/annee " + jour + "/" + (num_mois +1) + "/" + annee);
}
catch (IllegalArgumentException iea)
{
System.out.println("\nLa date saisie est incorrecte");
//....
//....
}
Cordialement,
Dan