Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Diferença entre horas

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
1 resposta
solução!

Oi, Victor! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

O uso da classe Duration para calcular a diferença entre os horários ficou muito bom, além da validação usando isBefore() para evitar que o horário final seja menor que o inicial. Esse cuidado com validação de dados é muito importante em programas que recebem entrada do usuário e mostra uma boa organização da lógica.

Uma dica interessante para o futuro é utilizar o método Duration.toSeconds() quando quiser analisar a duração em um nível mais detalhado ou converter para outros formatos de tempo.


import java.time.Duration;
import java.time.LocalTime;

LocalTime inicio = LocalTime.of(14, 30);
LocalTime fim = LocalTime.of(16, 0);

Duration duracao = Duration.between(inicio, fim);

long segundos = duracao.toSeconds();

System.out.println(segundos);
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!