// Classe accessoria per la gestione delle durate dei brani class Tempo { public static final int MINUTI = 0; public static final int SECONDI = 1; // Attributi della classe Tempo private int minuti; private int secondi; // Costruttori public Tempo() { minuti = secondi = 0; } public Tempo(int min, int sec) { minuti = min; secondi = sec; } // Metodi di impostazione public void impostaMinuti(int min) { minuti = min; } public void impostaSecondi(int sec) { secondi = sec; } // Metodi di interrogazione public int minuti() { return minuti; } public int secondi() { return secondi; } public int[] minutiEsecondi() { int[] v = new int[2]; // Crea un vettore di due elementi v[MINUTI] = minuti; // Legge i minuti... v[SECONDI] = secondi; // ... e i secondi return v; // Restituisce il vettore } // Metodo di conversione min:sec -> sec public int inSecondi() { return (minuti * 60 + secondi); } // Metodo di conversione sec -> min:sec public void daSecondi(int sec) { minuti = sec / 60; secondi = sec % 60; } // Somma un tempo public Tempo somma(Tempo t) { int sec = this.inSecondi() + t.inSecondi(); this.daSecondi(sec); return this; } // Sottrae un tempo public Tempo sottrai(Tempo t) { int sec = this.inSecondi() - t.inSecondi(); this.daSecondi(sec); return this; } }