Orario

Tutti i Progetti
public class Orario {
    private int ore;
    private int minuti;
    private int secondi;

    public Orario(int ore, int minuti, int secondi) {
        if (ore < 0 || ore >= 24 || minuti < 0 || minuti >= 60 || secondi < 0 || secondi >= 60) {
            this.ore = 0;
            this.minuti = 0;
            this.secondi = 0;
        } else {
            this.ore = ore;
            this.minuti = minuti;
            this.secondi = secondi;
        }
    }

    public Orario() {
        this.ore = 0;
        this.minuti = 0;
        this.secondi = 0;
    }
   
    public int getOre() { return ore; }
   
    public int getMinuti() { return minuti; }
   
    public int getSecondi() { return secondi; }
    
    public void tic() {
        this.secondi++;
        if (this.secondi >= 60) {
            this.secondi = 0;
            this.minuti++;
            if (this.minuti >= 60) {
                this.minuti = 0;
                this.ore++;
                if (this.ore >= 24) {
                    this.ore = 0;
                }
            }
        }
    }
    
    public void aggiungiMinuti(int m) {
        this.minuti += m;
        while (this.minuti >= 60) {
            this.minuti -= 60;
            this.ore++;
            if (this.ore >= 24) {
                this.ore -= 24;
            }
        }
    }

    public String mostra() {
        return ore + ":" + minuti + ":" + secondi;
    }
    
    public boolean ugualeA(Orario altro) {
        return this.ore == altro.ore && this.minuti == altro.minuti && this.secondi == altro.secondi;
    }
}
public class TestOrario {
    public static void main(String[] args) {
        Orario orario1 = new Orario(23, 59, 59);
        
        System.out.println("now: " + orario1.mostra());
        orario1.tic();
        System.out.println("after un tic: " + orario1.mostra());
        
        orario1.aggiungiMinuti(125);
        System.out.println("after 125 minutes: " + orario1.mostra());
        
        Orario orario2 = new Orario(10, 30, 45);
        
        if (orario1.ugualeA(orario2)) {
            System.out.println("same time");
        } else {
            System.out.println("you need a resync.");
        }
    }
}

Output

now: 23:59:59 after un tic: 0:0:0 after 125 minutes: 2:5:0 you need a resync.