Tester si l'annee est bissextile

douda86 -  
 danimo -
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. danimo
     
    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
  2. yofa Messages postés 1245 Statut Membre 207
     
    Tu programmes en quoi?!
    0
    1. douda86
       
      merci je programme en java
      0
  3. yofa Messages postés 1245 Statut Membre 207
     
    Arg!

    Je ne suis pas comptétent en java malheureusement!

    Essayez

    https://java.developpez.com/

    c'est trés complet!
    Utilisez le forum pour poser vos questions ^^
    0
  4. faaarah
     
    bonjour,comment tester l'année bissextile
    0
    1. danimo
       
      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