précédent | suivant | table des matières
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);