Я пытаюсь сделать «часы», которые делают несколько вещей:
1) Отображает указанное время как военное время (00:00:00) для полуночи)
2) Добавляет или вычитает заданное количество времени на часы с использованием объекта clock, который имеет до 3 целых параметров (h, m, s) и математический метод или другой тактовый объект
- Пример)Создание «часов», которое печатает военное время и добавляет/вычитает время
System.out.print (c1 + " + 10 hours is ");
c1.addHours(10);
System.out.println (c1);
- Пример 2)
System.out.print (c4 + " + 12:59:55 is ");
c4.addTime(12,59,55);
System.out.println (c4);
Так что у меня возникают проблемы с двумя вещами: математическими методами и методом toString(), который заставляет все распечатывать как следует. Я новичок в идее методов toString(), и они на самом деле не имеют особого смысла. Вот методы математики и toString(), которые у меня есть, любая помощь приветствуется.
//**********Methods to perform calculations w/ an object
public void addHours(int h){
if(this.hours + h > 23)
hours = this.hours + (h % 24);
else
hours = this.hours + h;
}
public void addMinutes(int m){
if(this.mins + m > 59){
hours = this.hours + (m % 60);
mins = this.mins + (hours % (m % 60));
}
else
mins = this.mins + m;
}
public void addSeconds(int s){
if(this.secs + s > 59){
mins = this.mins + (s % 60);
secs = this.secs + (mins % (s % 60));
}
else
secs = this.secs + s;
}
public void addTime(int h, int m, int s){
addHours(h);
addMinutes(m);
addSeconds(s);
}
//Displays correctly formatted time
public String toString(){
if(hours > 23 || hours < 0)
return "00:00:00";
if(hours > 9)
return "" + getHours();
if(mins > 9)
return "" + getMinutes();
if(secs > 9)
return "" + getSeconds();
return "0" + getHours() + ":0" + getMinutes() + ":0" + getSeconds();
}
SimpleDateFormat; В Java 8 используйте Time API, иначе используйте JodaTime – MadProgrammer
. Если вы не заинтересованы в использовании существующих API, я бы сохранил время как количество секунд с полуночи, намного проще добавлять/вычитать значения – MadProgrammer