Я новичок в этой java и я только начал занятия, они прислали нам это упражнение:
Упражнение 3
Разработайте вызываемый класс
Reloj
с целочисленными атрибутами:hora
(24 часа),minuto
иsegundo
и следующими методами:Конструктор, который инициализирует атрибуты значениями, переданными в качестве параметров.
Метод под названием Increment, который увеличивает время на одну секунду.
Например:
17:53:59
будет17:54:00
17:59:59
будет18:00:00
4. Метод под названием «Декремент», который уменьшает время на одну секунду.
Например:
17:53:00
будет17:52:59
17:00:00
будет16:59:59
5. Вызывается метод Hora12
, который преобразует String
время путем объединения его атрибутов и возвращает строку в 12-часовом формате ( hh:mm:ss AM/PM
)
AM: (до 12 часов), PM (с 12 до 24 часов)
Это мой код, класс Reloj
:
public class Reloj {
int modo,hora, minutos,segundos;
int getmodo(){
return modo;
}
public void setmodo(int modo){
this.modo=modo;
}
int gethora(){
return hora;
}
public void sethora(int hora){
this.hora=hora;
}
public int getminutos(){
return minutos;
}
public void setminutos(int minutos){
this.minutos=minutos;
}
public int getsegundos(){
return segundos;
}
public void setsegundos(int segundos){
this.segundos=segundos;
}
public Reloj(){
modo=24; /*por defecto ponemos 24horas*/
hora=0;
minutos=0;
segundos=0;
}
public Reloj( int h, int m, int s){
this.modo=24;
this.hora=h %24;
this.minutos=m % 60;
this.segundos=s % 60;
}
public void ponerEnHora(int md, int hh, int mm, int ss){
modo=md;
hora=hh % 24;
minutos=mm % 60;
segundos=ss % 60;
}
public void incrementar(){
segundos++;
if (segundos==60){
segundos=0;
minutos++;
if(minutos==60){
minutos=0;
hora=(hora+1)%24;
}
}
}
public void decrementa(){
segundos--;
if(segundos<00){
segundos=59;
minutos--;
if(minutos<00){
minutos=59;
hora=(hora-1) %24;
}
}
}
public String verHora(){
String hms="Son las ";
if (modo==12){//modo 12 horas
hms+=(hora>12)?hora-12:hora;
hms+= ":"+minutos+":"+segundos;
hms+=(hora>=12)?"pm":"am";
}else{//modo 24h
hms+=hora+":"+minutos+":"+segundos;
}
return (hms);
}
}
Класс часов ГЛАВНЫЙ:
public class Relojes {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Reloj reloj1 = new Reloj();
reloj1.ponerEnHora(24,17,10,10);
System.out.println(reloj1.verHora());
reloj1.incrementar();
System.out.println(reloj1.verHora());
reloj1.decrementa();
System.out.println(reloj1.verHora());
}
}
Я не получаю часы в 12-часовом режиме, все остальное работает, но печать в 12-часовом режиме с AM или PM у меня не работает, давайте посмотрим, можете ли вы мне помочь.
Осталось только вызвать метод setModo класса Clock и дать ему 12