olá a todos, estou tendo problemas ao retornar o tempo que o veículo permaneceu no estacionamento. acho que pode ter algo a ver com o timeZone, as vezes ele consegue retornar o tempo decorrido outras vezes não porém pesquisei e não consegui implementar nada que funcione sigo a pesquisar…
método que estou utilizando.
public String calcularValorPermanencia(LocalTime entrada, LocalTime saida){
NumberFormat nf = NumberFormat.getCurrencyInstance(new Locale("pt", "BR"));
String msg;
//pega a diferença de tempo na entrada e saida
int horas = saida.getHour() - entrada.getHour();
int minutos = saida.getMinute() - entrada.getMinute();
//faz o calculo de valor a pagar com as horas
double resultado = (getValorH() * horas);
//faz o calculo de valor a pargar com os minutos e soma ao resultado
resultado += (getValorH() * (minutos/60d));
//forma a mensagem de saída
setLucro(resultado);
msg = "\nTempo de Permanência: " + LocalTime.of(horas, minutos).format(DateTimeFormatter.ofPattern("HH:mm")) +
"\nValor a Pagar: "+ nf.format(resultado).replace("-", "");
//este replace é uma gambi caso ele efetue um calculo cujo horário ultrapassa o horário de saída.
//retorna a mensagem
return msg;
}
@Override
public String toString() {
return "Placa: " + placa +
"\nData: " + data +
"\nValor Hora: " + formataValor(capturaValorHora()) +
"\nHora Entrada: " + hora +
"\nHora saída: " + HoraSaida() +
calcularValorPermanencia(LocalTime.parse(getHora()), LocalTime.parse(HoraSaida()));
}
}
Imagem do erro

utilizei a segunda opção por ser mais clean.