Tengo duda sobre un problema; Tengo que crear un objeto llamado HORA donde la entrada de datos sean en formato HH:MM:SS (horas, minutos, segundos), pero dentro del programa tengo que trabajar en segundos, no puedo ocupar otra variable que no sean segundos, (SOLO LA VARIABLE SEGUNDOS), y la salida de datos tiene que estar en el mismo formato de entrada HH:MM:SS;
Nos explicaban el problema con una analogía; Mandas tu auto al taller y el mecánico te intercambia el motor por el de un ferrari, manejas el auto de la misma forma, responde de la misma manera, acelera frena y todo, solo que el motor no es el mismo. Bueno escribes las horas, minutos, segundos pero todo lo trabajas en segundos, y cuando pides el toString te da el formato en horas , minutos , segundos; Espero me haya dado a entender, de todas formas dejo lo que tengo realizado pero no tengo idea de como trabajarlo en segundos con una sola variable;
public class Hora
{
private int segundos;
public Hora (int h, int m, int s)
{
setHoras(h);
setMinutos(m);
setSegundos(s);
}
public Hora ()
{
setHoras(0);
setMinutos(0);
setSegundos(0);
}
public Hora (int h)
{
setHoras(h);
setMinutos(0);
setSegundos(0);
}
public Hora (int h, int m)
{
setHoras(h);
setMinutos(m);
setSegundos(0);
}
public void setHoras(int segundos1)
{
segundos=(segundos>=0 && segundos<86400) ? segundos : 0;
if(segundos>=3600)
{
segundos=segundos/3600;
}
}
public int getHoras()
{
return segundos;
}
public void setMinutos(int m)
{
segundos=(segundos>=0 && segundos<3600) ? m : 0;
if (segundos>=60)
{
segundos=segundos/60;
}else
{
segundos = (segundos<=59) ? m:0;
}
}
public int getMinutos()
{
return segundos;
}
public void setSegundos(int s)
{
segundos=(segundos>=0 && segundos<59) ? s :0;
if (segundos>=0)
{
segundos=segundos;
}
}
public int getSegundos()
{
return segundos;
}
public String toString()
{
return((segundos==0 || segundos==12 ? 12:segundos %12) +":"
+(segundos<10 ? "0":"") + segundos+ ":"+ (segundos <10
?"0":"")+ segundos + (segundos <12 ? "AM" : "PM"));
}
}
Esto es lo que tengo... Espero puedan ayudarme(No utilizo printf ni scanf), soy nuevo en JAVA
Nos explicaban el problema con una analogía; Mandas tu auto al taller y el mecánico te intercambia el motor por el de un ferrari, manejas el auto de la misma forma, responde de la misma manera, acelera frena y todo, solo que el motor no es el mismo. Bueno escribes las horas, minutos, segundos pero todo lo trabajas en segundos, y cuando pides el toString te da el formato en horas , minutos , segundos; Espero me haya dado a entender, de todas formas dejo lo que tengo realizado pero no tengo idea de como trabajarlo en segundos con una sola variable;
public class Hora
{
private int segundos;
public Hora (int h, int m, int s)
{
setHoras(h);
setMinutos(m);
setSegundos(s);
}
public Hora ()
{
setHoras(0);
setMinutos(0);
setSegundos(0);
}
public Hora (int h)
{
setHoras(h);
setMinutos(0);
setSegundos(0);
}
public Hora (int h, int m)
{
setHoras(h);
setMinutos(m);
setSegundos(0);
}
public void setHoras(int segundos1)
{
segundos=(segundos>=0 && segundos<86400) ? segundos : 0;
if(segundos>=3600)
{
segundos=segundos/3600;
}
}
public int getHoras()
{
return segundos;
}
public void setMinutos(int m)
{
segundos=(segundos>=0 && segundos<3600) ? m : 0;
if (segundos>=60)
{
segundos=segundos/60;
}else
{
segundos = (segundos<=59) ? m:0;
}
}
public int getMinutos()
{
return segundos;
}
public void setSegundos(int s)
{
segundos=(segundos>=0 && segundos<59) ? s :0;
if (segundos>=0)
{
segundos=segundos;
}
}
public int getSegundos()
{
return segundos;
}
public String toString()
{
return((segundos==0 || segundos==12 ? 12:segundos %12) +":"
+(segundos<10 ? "0":"") + segundos+ ":"+ (segundos <10
?"0":"")+ segundos + (segundos <12 ? "AM" : "PM"));
}
}
Esto es lo que tengo... Espero puedan ayudarme(No utilizo printf ni scanf), soy nuevo en JAVA