Cálculo de entrada e saída de sistema de estacionamento não funcionando corretamente

Boa tarde!
Estou fazendo um sistema de estacionamento para estudar e gostaria de adicionar um temporizador. Ele deve funcionar junto com uma função de cobrança, ao qual por exemplo, 3 horas equivalem a uma cobrança de R$30,00. No entanto, se eu colocar o horário de entrada 23h e o de saída 1h, o temporizador conta como cobrança negativa. Tem algum jeito de eu fazer o cálculo corretamente?

Teria alguma forma de transformar esse value() em algo funcional?
Segue o código:

public int horaEntrada() {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Hora de entrada: ");
    int horaEntradaScan = scanner.nextInt();
    return horaEntradaScan;
}
public int horaSaida(){
    Scanner scanner = new Scanner(System.in);
    System.out.println("Hora de saída: ");
    int horaSaidaScan = scanner.nextInt();
    return horaSaidaScan;
}
public void value(){
    int y = horaEntrada();
    int x = horaSaida();
    int z = x - y;
    System.out.println("O valor a ser cobrado é: R$" + z * 10);
}

No seu método value(), quando z for negativo é um indicativo que virou o dia, então você soma 24 horas para ajustar, que vai resolver seu problema.

public void value(){
    int y = horaEntrada();
    int x = horaSaida();
    int z = x - y;
    if (z < 0) {
        z += 24;
    }
    System.out.println("O valor a ser cobrado é: R$" + z * 10);
}
1 curtida

Obrigado!! To abrindo a mente ainda, rs