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



Tempo.java
Created with JBuilder