public class TimeOfDay {
// we represent a time of the day by the total number of seconds since midnight
private int totsec;
public TimeOfDay(int h, int m, int s) {
totsec = h*3600 + m*60 + s;
}
public void add(TimeOfDay t) {
this.totsec += t.totsec;
if (this.totsec > 24*3600)
this.totsec -= 24*3600;
}
public void subtract(TimeOfDay t) {
this.totsec -= t.totsec;
if (this.totsec < 0)
this.totsec += 24*3600;
}
public boolean precedes(TimeOfDay t) {
return this.totsec < t.totsec;
}
public boolean equalTo(TimeOfDay t) {
return this.totsec == t.totsec;
}
public String toString() {
int h = totsec / 3600;
int m = (totsec - h*3600) / 60;
int s = (totsec - h*3600 - m*60);
String hh = (h < 10) ? " " + h : Integer.toString(h);
String mm = (m < 10) ? " " + m : Integer.toString(m);
String ss = (s < 10) ? " " + s : Integer.toString(s);
return hh + ":" + mm + ":" + ss;
}
}