Dovendo progettare una classe per svolgere elaborazioni con orari
10:15:37
07:06:45
23:59:59
…
07:06:45
23:59:59
…
si possono usare tre attributi separati per ore, minuti e secondi
public class Orario { final int SEC_MIN=60; final int MIN_ORA=60; final int ORE_GIO=24; final int SEC_ORA=SEC_MIN*MIN_ORA; final int SEC_GIO=SEC_ORA*ORE_GIO; private int ore, minuti, secondi; public Orario(int Ore, int Minuti, int Secondi) { ore =Ore; minuti =Minuti; secondi=Secondi; } public int getOre() { return ore; } public int getMinuti() { return minuti; } public int getSecondi() { return secondi; } public boolean uguale(Orario altroOrario) { return ore == altroOrario.getOre() && minuti == altroOrario.getMinuti() && secondi == altroOrario.getSecondi(); } public void incrementa(int quantiSecondi) { secondi += quantiSecondi; if(secondi >= SEC_MIN) { minuti += (secondi/SEC_MIN); secondi %= SEC_MIN; if(minuti >= MIN_ORA) { ore += (minuti/MIN_ORA); minuti %= MIN_ORA; if(ore >= ORE_GIO) ore %= ORE_GIO; } } } public void incMinuti(int quantiMinuti) { incrementa(quantiMinuti*SEC_MIN); } }
Esercizi
Realizza i metodi
- incOre(), decrementa(), decMinuti(), decOre()
- precede(), segue(), confronta()
- toString()