Olá!
Segue minha resolução:
import java.time.Duration;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class DiferencaEntreHoras {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
DateTimeFormatter formato = DateTimeFormatter.ofPattern("hh:mm:ss");
System.out.println("Insira o horário de início da atividade: ");
LocalTime primeiroHorario = LocalTime.parse(sc.next());
System.out.println("Insira o horário de término da atividade: ");
LocalTime segundoHorario = LocalTime.parse(sc.next());
while (segundoHorario.isBefore(primeiroHorario)){
System.out.println("Horário não pode ser anterior ao horário de início. Digite novamente: ");
System.out.println("Insira o horário de início da atividade: ");
primeiroHorario = LocalTime.parse(sc.next());
System.out.println("Insira o horário de término da atividade: ");
segundoHorario = LocalTime.parse(sc.next());
}
Duration duracaoAtividade = Duration.between(primeiroHorario, segundoHorario);
Long horas = duracaoAtividade.toHours();
Long minutos = duracaoAtividade.toMinutes() %60;
Long segundos = duracaoAtividade.toSeconds() %60;
String resultado = String.format("%02d:%02d:%02d", horas, minutos,segundos);
System.out.println("Tempo de durção da atividade: " + resultado);
sc.close();
}
}
Saída:
Insira o horário de início da atividade:
15:00
Insira o horário de término da atividade:
17:00
Tempo de durção da atividade: 02:00