// Classe accessoria per la gestione degli orari // degli appuntamenti e della durata degli stessi class Tempo { public static final int ORE = 0; public static final int MINUTI = 1; // Attributi della classe Tempo private int ore; private int minuti; // Costruttori public Tempo() { ore = minuti = 0; } public Tempo(int hh, int mm) { ore = hh; minuti = mm; } public Tempo(int[] oreMinuti) { ore = oreMinuti[ORE]; minuti = oreMinuti[MINUTI]; } public Tempo(Tempo t) { ore = t.ore(); minuti = t.minuti(); } // Metodi di impostazione public void impostaOre(int hh) { ore = hh; } public void impostaMinuti(int mm) { minuti = mm; } public void imposta(int[] oreMinuti) { ore = oreMinuti[ORE]; minuti = oreMinuti[MINUTI]; } public void imposta(Tempo t) { ore = t.ore(); minuti = t.minuti(); } // Metodi di interrogazione public int ore() { return ore; } public int minuti() { return minuti; } public int[] minutiEsecondi() { int[] v = new int[2]; v[ORE] = ore; v[MINUTI] = minuti; return v; } // Metodi di conversione (ore:min -> min e min -> ore:min) public int inMinuti() { return (ore * 60 + minuti); } public void daMinuti(int mm) { ore = mm / 60; minuti = mm % 60; } // Somma un tempo public void somma(Tempo t) { int min = inMinuti() + t.inMinuti(); daMinuti(min); } // Sottrae un tempo public Tempo sottrai(Tempo t) { int sec = this.inMinuti() - t.inMinuti(); this.daMinuti(sec); return this; } // Confronto fra tempi public boolean maggioreDi(Tempo t) { return (this.inMinuti() > t.inMinuti()); } public boolean minoreDi(Tempo t) { return (this.inMinuti() < t.inMinuti()); } }