Oi, Igor! Como vai?
Você organizou bem a separação entre a classe Main e a classe RelogioDePonto, deixando a leitura dos dados em um lugar e o cálculo em outro. Um ponto interessante é que o resultado -1h -15min indica que a saída real foi antes da prevista, então o saldo ficou negativo, funcionando corretamente para esse caso.
Uma dica interessante para o futuro é usar Duration.abs() quando quiser exibir o valor do saldo sem misturar hora e minuto negativos, e depois indicar se foi crédito ou débito de horas. Veja este exemplo:
Duration duracao = Duration.between(saidaPrevista, saida);
String tipoSaldo = duracao.isNegative() ? "Debito" : "Credito";
Duration duracaoAbsoluta = duracao.abs();
System.out.printf(
"Saldo de horas: %s de %dh %dmin%n",
tipoSaldo,
duracaoAbsoluta.toHours(),
duracaoAbsoluta.toMinutesPart()
);
Esse código verifica se o saldo é negativo, transforma a duração em valor positivo para exibição e mostra se houve Debito ou Credito.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!