Falta pouco!

0 dias

0 horas

0 min

0 seg

1
resposta

[Projeto] Controle de expediente

import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;


public class PrincipalConclusão {

    public static void main(String[] args) {


        DateTimeFormatter horarioFormatado = DateTimeFormatter.ofPattern("HH:mm");
        Scanner teclado = new Scanner(System.in);


        System.out.println("Digite o horário de entrada (HH:mm): ");
        LocalTime entrada = LocalTime.parse(teclado.next(), horarioFormatado);

        System.out.println("Digite a carga horária diária (em horas):");
        int cargaHoraria = teclado.nextInt();


        System.out.println("Digite o horário real de saída (HH:mm): ");
        LocalTime saida = LocalTime.parse(teclado.next(), horarioFormatado);

        teclado.close();

        LocalTime saidaPrevista = entrada.plusHours(cargaHoraria);

        Duration horasTrabalhada = Duration.between(entrada, saida);
        long horasExtras = horasTrabalhada.toHours();
        long minutosExtras = horasTrabalhada.toMinutes() % 60;


        System.out.println("\nHorário de entrada: " + entrada.format(horarioFormatado));
        System.out.println("\nHorário de saída previsto:: " + saidaPrevista.format(horarioFormatado));
        System.out.println("\nHorário real de saída: " + saida.format(horarioFormatado));

        if (horasExtras == 0 && minutosExtras == 0) {

            System.out.println("Saldo de horas: 0h 0min");
        } else {
            String sinal;

            if (horasExtras > 0 || minutosExtras > 0) {

                sinal = "+ ";
            } else {

                sinal = "- ";
            }

            System.out.println("Saldo de horas: " + sinal + Math.abs(horasExtras) + "h " + Math.abs(minutosExtras) + "min");
        }

    }
}
1 resposta

Olá, Christian! Como vai?

Parabéns pela resolução da atividade!

Você demonstrou domínio ao utilizar o Scanner para capturar entradas com clareza, aplicou com precisão o uso do Duration para calcular o tempo trabalhado e ainda teve o cuidado de formatar a saída com DateTimeFormatter, o que torna a experiência do usuário muito mais intuitiva e profissional.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!