Jump to content
Natália Oliveira

Hora, min, seg #AJUDA

Recommended Posts

Natália Oliveira

Bom dia, pessoal preciso de uma ajuda pra modificar uma classe que já criei,

public class Time
{

private int hora,cont, min,seg;

public Time()
{
//sem passar nenhuma informação;
}

public Time(int hr)
{
//informando a hora;
setHora(hr);
}
public Time(int hr, int minu)
{
//informando a hora e o minuto;
setHora(hr);
setMin(minu);
}

public Time(int hr, int minu, int segu)
{
//e informando a hora, o minuto e o segundo.
setHora(hr);
setMin(minu);
setSeg(segu);
}

public void setHora(int h)
{
if ((h < 0)|| (h > 23))
{
System.out.printf("! #PAN# &*#@£ !");
}else
hora = h;
}

public void setMin(int m)
{
if ((m < 0)|| (m > 59))
{
System.out.printf("! #PAN# &*#@£ !");
}else
min = m;
}

public void setSeg(int s)
{
if ((s < 0)|| (s > 59))
{
System.out.printf("! #PAN# &*#@£ !");
}else
seg = s;
}

public int getHora()
{
return hora;
}

public int getMin()
{
return min;
}

public int getSeg()
{
return seg;
}
}

agora preciso alterar essa classe trocando os atributos hora, min, e seg por um unico atributo que conta o numero de segundos a partir das 00 horas, porém tenho que manter os metodos de acesso a horas, min e seg modificando apenas suas implementações para lidar com este unico atributo.

Já fiz assim:

public class Time2
{
int seg; //Exemplo:
//seg=00 => 00:00:00
// seg=30 => 00:00:30
// seg=90 => 00:01:30

public void setSegundos(int s)
{
int aux = getSegundos();
seg-=aux;
seg+=s;
} // fim do método setSegundos

public void setMinutos(int m)
{
int aux = getMinutos();
seg-=aux;
seg+=m;
}
// fim do método setMinutos

public void setHoras(int h)
{
int aux = getHoras();
seg-=aux;
seg+=h;
}
// fim do método setHoras

public int getSegundos()
{
return seg%60;
} //
}

Estou no caminho certo? alg pode ajudar?[/indent]

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites
legd1991

Porque não metes uma Datetime e depois "brincas" com a variável

Share this post


Link to post
Share on other sites
Caroline

Tem que trabalhar com matemática, usar módulo (%) e divisão por inteiro.Por exemplo, se na variável segundos estiver armazenado 150, seria 00:02:30.

Aí, se alguém usar setHoras(3), tenho que fazer: segundos += 60*60*3

  • Vote 1

Share this post


Link to post
Share on other sites
Rui Carlos

Um pouco offtopic, mas evite colocar System.out.print* por todo o lado. Este tipo de classes não devem usar I/O.

Para tratar erros, pode usar excepções, ou se não conhece excepções, pode usar o valor de retorno do método para indicar se a operação foi bem sucedida ou não.

  • Vote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.