fork(2) download
  1. import java.time.LocalTime;
  2. import java.time.format.DateTimeFormatter;
  3. import java.time.format.ResolverStyle;
  4.  
  5. class TesteDatas {
  6. private static final DateTimeFormatter FORMATO_HORAS = DateTimeFormatter
  7. .ofPattern("HH:mm")
  8. .withResolverStyle(ResolverStyle.STRICT);
  9.  
  10. private static LocalTime faltando(LocalTime agora, LocalTime desejada) {
  11. return desejada.minusHours(agora.getHour()).minusMinutes(agora.getMinute());
  12. }
  13.  
  14. private static void mostrar(LocalTime horario, String objetivo) {
  15. LocalTime desejada = LocalTime.parse(objetivo, FORMATO_HORAS);
  16. LocalTime falta = faltando(horario, desejada);
  17. System.out.println(
  18. "Entre " + horario.format(FORMATO_HORAS)
  19. + " e " + desejada.format(FORMATO_HORAS)
  20. + ", a diferença é de " + falta.format(FORMATO_HORAS)
  21. + ".");
  22. }
  23.  
  24. public static void main(String[] args) {
  25. LocalTime agora = LocalTime.now();
  26. mostrar(agora, "07:30");
  27. mostrar(LocalTime.of( 5, 30), "07:30");
  28. mostrar(LocalTime.of( 7, 10), "07:30");
  29. mostrar(LocalTime.of( 0, 0), "07:30");
  30. mostrar(LocalTime.of( 7, 0), "07:30");
  31. mostrar(LocalTime.of( 7, 30), "07:30");
  32. mostrar(LocalTime.of( 7, 31), "07:30");
  33. mostrar(LocalTime.of(10, 0), "07:30");
  34. mostrar(LocalTime.of(19, 30), "07:30");
  35. mostrar(LocalTime.of(23, 59), "07:30");
  36. mostrar(LocalTime.of( 0, 0), "23:59");
  37. mostrar(LocalTime.of(23, 59), "00:00");
  38. }
  39. }
Success #stdin #stdout 0.15s 4386816KB
stdin
Standard input is empty
stdout
Entre 01:02 e 07:30, a diferença é de 06:28.
Entre 05:30 e 07:30, a diferença é de 02:00.
Entre 07:10 e 07:30, a diferença é de 00:20.
Entre 00:00 e 07:30, a diferença é de 07:30.
Entre 07:00 e 07:30, a diferença é de 00:30.
Entre 07:30 e 07:30, a diferença é de 00:00.
Entre 07:31 e 07:30, a diferença é de 23:59.
Entre 10:00 e 07:30, a diferença é de 21:30.
Entre 19:30 e 07:30, a diferença é de 12:00.
Entre 23:59 e 07:30, a diferença é de 07:31.
Entre 00:00 e 23:59, a diferença é de 23:59.
Entre 23:59 e 00:00, a diferença é de 00:01.