Somar ou subtrair 2 objetos do tipo Time

3 respostas
bruno_r_santana

Olá,

Estou com uma dificuldade.

String horaAtualStr = new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime());
    Time horaAtual = Time.valueOf(horaAtualStr);
   
    String horaAtualStr2 = new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime());
    Time horaAtual2 = Time.valueOf(horaAtualStr2);

    out.println(horaAtual.before(horaAtual2));  //ISSO DÁ CERTO
    out.println(horaAtual + horaAtual2);          //ISSO DÁ ERRO
    out.println(horaAtual - horaAtual2);          //ISSO DÁ ERRO

Queria saber como somar ou subtrair dois objetos Time. Tentei fazer algumas coisas dessa página http://www.guj.com.br/java/39574-somar-horas mas não consegui fazer nada funcionar. Poderiam me ajudar por favor.

Obrigado a todos.

3 Respostas

drsmachado

Já pesquisou a classe calendar?

jaboot

Se você puder usar outras bibliotecas, o Joda-Time faz isso pra você em um piscar de olhos.

bruno_r_santana

Pessoal, caso alguém mais tenha dúvida sobre isso, fiz assim e foi de boa:

Time horaNoBanco01 = Time.valueOf("01:19:30");
	Time horaNoBanco02 = Time.valueOf("02:40:31");
	
	Time zeroHora = Time.valueOf("00:00:00");
	
	Calendar c1 = Calendar.getInstance();
	c1.setTime(horaNoBanco01);
	long mili1 = c1.getTimeInMillis();
	
	Calendar c2 = Calendar.getInstance();
	c2.setTime(horaNoBanco02);
	long mili2 = c2.getTimeInMillis();
	
	long diferenca = mili2 - mili1;
	out.print("em mili " + diferenca);
	
	Calendar zeroHoraCal = Calendar.getInstance();
	zeroHoraCal.setTime(zeroHora);
	
	Calendar difCal = Calendar.getInstance();
	difCal.setTimeInMillis(diferenca + zeroHoraCal.getTimeInMillis());
	String diferencaFormatada = new SimpleDateFormat("HH:mm:ss").format(difCal.getTime());
	
	out.print("<br> formatada: " + diferencaFormatada);

valeu, obrigado a todos

Criado 26 de janeiro de 2012
Ultima resposta 30 de jan. de 2012
Respostas 3
Participantes 3