import java.time.Duration;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Scanner leitura = new Scanner(System.in);
DateTimeFormatter horaFormatada = DateTimeFormatter.ofPattern("HH:mm");
System.out.println("Digite o horário de entrada (HH:mm): ");
LocalTime entrada = LocalTime.parse(leitura.next(), horaFormatada);
int cargaHoraria = 8;
LocalTime saidaPrevista = entrada.plusHours(cargaHoraria);
System.out.println("Horário de saída previsto: " + saidaPrevista.format(horaFormatada));
System.out.println("Digite o horário de saída (HH:mm): ");
LocalTime saidaReal = LocalTime.parse(leitura.next(), horaFormatada);
leitura.close();
Duration saldoHoras = Duration.between(saidaPrevista, saidaReal);
long horas = Math.abs(saldoHoras.toHours());
long minutos = Math.abs(saldoHoras.toMinutesPart());
String sinal = saldoHoras.isNegative() ? "-" : "+";
System.out.printf("Saldo de horas: %s%02dh%02dmin", sinal, horas, minutos);
}
}
Saída:
Digite o horário de entrada (HH:mm):
08:00
Horário de saída previsto: 16:00
Digite o horário de saída (HH:mm):
17:30
Saldo de horas: +01h30min