bem, estou tenta fazer um calculo simples e horas para dar um resultado, de um sistema de lan house.
Coloquei um campo para digitar a hora de entrada e de saida, sendo que na hora de colocar a saida, o usuário não precisa pois já dah a hora atual, porém na hora de diminuir a hora saida - hora entrada ele dá um erro, acho que é pelos “:” que tem nos 2 horários. meu código está ai embaixoquem puder me ajudar pleaaaase , estou a 2 dias tentando fazer isso
Como usuario informa a horario neste formato? hh:mm:ss
caso sim , vc precisa quebrar este horario onde encontrar : e transformando para hora, minutos , secundos e etc…
E
Euler_Homero
Pelo que entendi seu problema será resolvido dessa maneira:
Eu fiz uma classe por fora pra cadastrar o horário
B
BiRdReD
Euler , não consegu destaforma :x
E
Euler_Homero
c viu isso?
privatevoidtf_horaentrada2FocusLost(java.awt.event.FocusEventevt){doublediferencahoras,diferencaminutos,diferencahoraminutos,tempototalhoras;diferencahoras=(Double.parseDouble(tf_horasaida.getText())-Double.parseDouble(tf_horaentrada2.getText()))/(1000*60*60);diferencaminutos=(Double.parseDouble(tf_horasaida.getText())-Double.parseDouble(tf_horaentrada2.getText()))/(1000*60);diferencahoraminutos=diferencaminutos%60;//aqui estava o erro essa eh a maneira certa de fazer a conversãotf_tempototal.setText(String.valueOf(diferencahoraminutos)+":"+String.valueOf(diferencaminutos));}
seu erro estah nessa conversão tf_tempototal.setText(String.valueOf(diferencahoraminutos+":"+diferencaminutos));
o correto seria assim: tf_tempototal.setText(String.valueOf(diferencahoraminutos)+":"+String.valueOf(diferencaminutos));
B
BiRdReD
vi cara , ajeitei este final
E
Euler_Homero
deu certo?
B
BiRdReD
não
LadyShoT
Dá uma olhada no link abaixo, o ViniGodoy,
postou uma solução para se trabalhar com horas e com um exemplo funcional utilizando-se da
biblioteca JodaTime.
na minha pura inocencia em java
não seria simples (se tiver logicamente) um código pra retirar os “:” efetuar o calculo de subtração e converter pra horas?
ViniGodoy
Já deu uma olhadinha no link que a LadyShoT postou?
Acho que aquele é de longe o jeito mais fácil.
B
BiRdReD
Desculpe mais ainda não consegui descifrar a forma de fazer isso com o joda time
estou a dias estudando ele
R
raghy
poxa é complicadinho mesmo, ja trabalhei quando fiz um despertador java, ta por aí o tópico, mas vi que consome muito do computador.
estava lendo também:
mas vou continuar usando o Date, transformar tudo para segundos e tentar calcular assim,
passando por Strings e ints…
estava concatenando com stringbuilder, mas o parseint, nao funciona para string builder.
fui olhar este:
la :
or exemplo, tu pega os segundos, faz um “mod” (em Java é o operador %) com 60, ou seja, ele vai pegar o que der, isso serão os minutos e o resto serão os segundos, depois tu pega os minutos em faz outro mod, só que com 24, daí ele vai retornar as horas, o que sobrar serão os minutos. Aí tu terá hora, minuto e segundo…
Se der tempo, mas tarde eu boto um algoritmo legal aqui.