Natália Oliveira Posted June 1, 2013 at 01:32 PM Report #510407 Posted June 1, 2013 at 01:32 PM (edited) 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 June 1, 2013 at 04:03 PM by thoga31 GeSHi
legd1991 Posted June 1, 2013 at 01:55 PM Report #510411 Posted June 1, 2013 at 01:55 PM Porque não metes uma Datetime e depois "brincas" com a variável
Caroline Posted June 1, 2013 at 03:41 PM Report #510425 Posted June 1, 2013 at 03:41 PM 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 1 Report
Rui Carlos Posted June 4, 2013 at 01:08 PM Report #510911 Posted June 4, 2013 at 01:08 PM 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. 1 Report Rui Carlos Gonçalves
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now