Boa tarde a todos! Estou com problemas para calcular diferença entre horas, por que quando o valor é inteiro da certo, mais quando preciso da diferença quebrada, o valor não é correto por exemplo (10:00 até 12:35). Alguém poderia me ajudar? Segue meu código!
public String salvar() {
BigDecimal horaFormat = new BigDecimal(0.00);
BigDecimal totvlrHrCli = new BigDecimal(0.00);
try {
utx.begin();
if (this.atividade.getTipoSuporte().equals("Presencial")) {
Date horaIni = this.atividade.getEntradaPresencial();
Date horaFim = this.atividade.getSaidaPresencial();
float umaHora = 60 * 60 * 1000;
float horaIniMs = horaIni.getTime();
float horaFimMs = horaFim.getTime();
float diff = horaFimMs - horaIniMs;
float horas = diff / umaHora;
horaFormat = new BigDecimal(horas);
BigDecimal traslado = new BigDecimal(this.atividade.getTraslado());
horaFormat = horaFormat.add(traslado);
BigDecimal vlrHrCli = this.atividade.getValorHoraCliente();
totvlrHrCli = horaFormat.multiply(vlrHrCli);
}
if (getAtividade().getId() == null) {
this.atividade.setTotalHoras(horaFormat);
this.atividade.setValorTotalCliente(totvlrHrCli);
em.persist(getAtividade());
} else {
em.merge(this.getAtividade());
}
utx.commit();
return "atividades";
} catch (Exception e) {
FacesMessage fm = new FacesMessage("Erro ao salvar");
FacesContext.getCurrentInstance().addMessage("salvar", fm);
System.out.println(e);
return "atividade";
}
}