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.");
}
}
}