Estacionamento de Java

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:

  1. Saber a diferença entre a ENTRADA e SAÍDA (armazenar a diferença em uma variável INT);
  2. 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!