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…
package conexaobd;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class hora
{
public String hora;
SimpleDateFormat horaformatada = new SimpleDateFormat ("HH:mm");
public void hora()
{
Date horaatual = new Date();
hora = horaformatada.format(horaatual);
}
}
Eu fiz uma classe por fora pra cadastrar o horário
private void tf_horaentrada2FocusLost(java.awt.event.FocusEvent evt) {
double diferencahoras,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ão
tf_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));
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?
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 :
[quote]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. [/quote]