Boa Noite pessoal, estou começando aprender Java em orientada a objeto é infelizmente estou com professor que não explica matéria, preciso criar um programinha simples de estacionamento, onde preciso colocar “Hora de Entrada” “Hora de saída” e total a pagar, estou com dificuldade de fazer um método para calcular. Tem como alguém me ajudar ?
Você quer calcular a diferença entre horas ou datas?
Caso seja para horas, esse tópico explica que usando a biblioteca Joda time você pode conseguir: Diferença de horas.
Aqui tem outro tópico, nele tem uma variedade maior de resultados entre datas e horários: Mkyong .
Horas, eu quero pegar hora de entra + a hora de saída é da o total a pagar
1 curtida
Lucas dá uma lida sobre LocalDateTime, a nova API de data do Java 8. Nela você fará o seguinte:
- Saber a diferença entre a ENTRADA e SAÍDA (armazenar a diferença em uma variável INT);
- Realizar as condições ‘IF’ de acordo o valor da variavel.
Ex.
if (varHora >= 3) return valorPagar;
Entendeu? Pega a diferença da hora, faz um IF de acordo com os valores e horas do estacionamento e em cada ‘IF’ você retorna esse valor num tipo double no método.
1 curtida
@lucas931 Segue um exemplo bem simples:
public class Main{
public static void main(String[] args){
//faz o calculo com entrada as 12h30 e saida as 13h50 com valor de $ 3,50 por hora
System.out.println(new CalcularValor().calcularValor(LocalTime.of(12, 30), LocalTime.of(13, 50), 3.5d));
}
}
public class CalcularValor{
public CalcularValor() {
}
public String calcularValor(LocalTime entrada, LocalTime saida, Double valorHora){
//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 = (valorHora * horas);
//faz o calculo de valor a pargar com os minutos e soma ao resultado
resultado += (valorHora * (minutos/60d));
//forma a mensagem de saída
String msg = "Tempo de permanencia " + LocalTime.of(horas, minutos).format(DateTimeFormatter.ofPattern("HH:mm")) + " - Valor a pagar R$ " + resultado;
//retorna a mensagem
return msg;
}
}
1 curtida
Muito obrigado!