Tempo.java
Created with JBuilder
// 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;
  }

}

Tempo.java
Created with JBuilder