import java.time.Duration;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class RegistroPonto {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
System.out.print("Digite o horário de entrada (HH:mm): ");
LocalTime entrada = LocalTime.parse(sc.next(), formatter);
System.out.print("Digite a carga horária diária (em horas): ");
int cargaHoraria = sc.nextInt();
LocalTime saida = entrada.plusHours(cargaHoraria);
System.out.print("Digite o horário real de saída (HH:mm): ");
LocalTime saidaReal = LocalTime.parse(sc.next(), formatter);
sc.close();
Duration diferencaJornadaTrabalho = Duration.between(saida, saidaReal);
String sinal;
if (diferencaJornadaTrabalho.toMinutes() == 0){
sinal = "";
} else if (diferencaJornadaTrabalho.toMinutes() > 0) {
sinal = "+";
} else {
sinal = "-";
}
System.out.println("Horário de entrada: " + entrada);
System.out.println("Horário de saída previsto: " + saida.format(formatter));
System.out.println("Horário real de saída: " + saidaReal);
System.out.print("Saldo de hora: " + sinal + Math.abs(diferencaJornadaTrabalho.toHours()) + "h " + Math.abs(diferencaJornadaTrabalho.toMinutesPart()) + "min");
}
}