Tester si l'annee est bissextile

Bonjour,
le probleme c'est que j'arrive pas a tester si l'annee de ma date d'entree est bissextile ou nn afin d'avoir accepter une date comme par exemple 29/02/2009 malgere que j'ai declaree une methode estBissextile()
merci pour votre aide
Configuration: Windows XP Internet Explorer 6.0

4 réponses

  1. 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
    2
    1. Tu programmes en quoi?!
      0
      1. merci je programme en java
        0
    2. bonjour,comment tester l'année bissextile
      0
      1. Salut,

               
           import java.util.GregorianCalendar;
        .......
        .....
        
        
          // Méthode:    
               public static void anneBisextile(int annee)
              {  
                 GregorianCalendar gcal = new GregorianCalendar();
                 boolean b = gcal.isLeapYear(annee);  // si annee bissextile, b = true
              
                 if (b)
                 {
                 // ANNEE BISSEXTILE ?
                    System.out.println("\nOUI " + annee + " est bissextile.");
                 }
                 else
                 {
                 // ANNEE NON BISSEXTILE ?
                    System.out.println("\nNON " + annee + " n'est pas bissextile.");
                 }
              }
        
        // exemples d'appels de la méthode:
        
                 int annee = 2010;  // l'année doit être de type int
                 anneBisextile(annee);
                 
                 annee = 2012;
                 anneBisextile(annee);
           
        


        Cordialement,

        Dan
        0