précédent | suivant | table des matières

Exemple  1 : définition d’une classe Temps

public class Temps{
   private int heures;
   private int minutes ;// de 0 à 59
   private int secondes ; // de 0 à 59
     // CONSTRUCTEURS

   public Temps(){
       heures = 0 ;
       minutes = 0 ;
       secondes = 0 ;
   }

  public Temps(int h, int m, int s){// initialise heures, minutes,                          
       heures = h ; // secondes avec h, m, s
       minutes = m ;
       secondes = s ; 
       normaliser() ;
  }

  public Temps( long t){ // initialise heures, minutes, secondes 
       Temps t ; // avec le temps t exprimé 
       t = conversionInverse(t) ;
       heures = t.heures ;
       minutes = t.minutes ;
       secondes = t.secondes ;
  }

    //   CONVERSIONS

    private long conversion(){
       return ((heures*60L)+minutes)*60+secondes ;
    }

    private Temps conversionInverse(long t){
        Temps te = new Temps();
        te.secondes = (int)(t%60) ;
        t = t/60 ;
        te.minutes = (int)(t%60) ;
        te.heures = (int)(t/60) ;
        return te ;
    }

    private void normaliser(){
       long t = conversion() ;
       secondes = (int)(t%60) ;
       t = t/60 ;
       minutes = (int)(t%60) ;
       heures = (int)(t/60) ;
   }

   // ACCESSEURS

   public int getHeures(){ return heures ;}

   public int getMinutes() { return minutes ;}

   public int getSecondes(){ return secondes;} 

   public void setHeures(int h){ heures = h ;}

   public void setMinutes(int m){ minutes = m ; normaliser() ;}

   public void setSecondes(int s){ secondes = s ; normaliser() ;}

   //  AJOUTS 

   public Temps ajouter( Temps te){
      long t = conversion() + te.conversion() ;
      return conversionInverse(t) ; 
   }

   public Temps ajouterUneSeconde(){
      long t = conversion() + new Temps(0,0,1).conversion() ;
      return conversionInverse(t); 
   }

   // COMPARAISONS 

   public int compareA( Temps te){ // retourne <0 si this < te, 
                                   // 0 si this==te, >0 si this> te
      long t1 = conversion() ;
      long t2 = te.conversion() ;
      return (int)(t1 – t2) ; 
   }

   public boolean egal( Temps te){// retourne vrai si this = te
      long t1 = conversion() ;
      long t2 = te.conversion() ;
      return t1 == t2 ; 
   }

   // VERS CHAÎNE 

   public String toString(){
      return heures+ ”h, ” +minutes+ ”m, ” +secondes+ ”s ” ;
  }
}

Exemple d’utilisation : 

   Temps t1 = new Temps( 5, 55, 45);
   Temps t2 = new Temps( 3, 15, 35);
   Temps t3 = t1.ajouter(t2);
   System.out.println(t1+ "+ "+t2+" = "+t3);

haut de la page