1
resposta

Exercício 01

import java.time.LocalDate;
import java.time.LocalTime;

public class Exercicios {
    public static void main(String[] args) {
        String tarefa = "Enviar relatório semanal";
        LocalDate dataAtual = LocalDate.now();
        LocalTime horarioAtual = LocalTime.now();

        if (!tarefa.equals("")) {
            System.out.println("Data atual: " + dataAtual);
            System.out.println("Hora atual: " + horarioAtual);
        } else {
            System.out.println("Tarefa não realizada");
        }
    }
}
1 resposta

Olá, Bernardo. Como vai?

Parabéns por iniciar os exercícios práticos desta trilha! O seu código para o Exercício 1 ficou ótimo, está muito bem estruturado e cumpre com precisão o objetivo de capturar o momento atual do sistema.

A separação que você fez utilizando as classes LocalDate (para o componente de calendário) e LocalTime (para o componente de relógio) é excelente. No ecossistema Java, cada uma dessas classes possui responsabilidades muito bem delimitadas para evitar o desperdício de memória de dados que você não vai usar.

Para agregar ainda mais valor à sua jornada de aprendizado, trago uma análise sobre o comportamento de exibição dessas classes e uma sugestão de boa prática para a sua estrutura condicional.

Como o Java exibe as datas por padrão?

Quando você manda imprimir o objeto direto na tela, desta forma:

System.out.println("Data atual: " + dataAtual);

O Java executa um método interno chamado .toString(), que formata a saída seguindo o padrão internacional ISO-8601 (aaaa-MM-dd). É por isso que no seu console a data aparece com os hifens invertidos (ano primeiro, depois mês e dia).

A API de tempo do Java (java.time) é dividida em três pilares principais para cobrir qualquer necessidade de negócio:

  • LocalDate: Guarda apenas o dia, mês e ano. Perfeito para aniversários, vencimentos de boletos ou prazos de entrega.
  • LocalTime: Guarda apenas a hora, minuto, segundo e frações de segundo. Ideal para cronômetros, escalas de trabalho ou intervalos.
  • LocalDateTime: Junta os dois mundos em um único objeto. Excelente para registrar o carimbo de data/hora exato de uma transação financeira ou auditoria de sistema.

Uma sugestão de boa prática: Verificação de Strings em Java

A sua validação condicional ficou muito boa, mas você utilizou a expressão:

if (!tarefa.equals(""))

Embora funcione perfeitamente, o Java moderno (a partir da versão 11) introduziu um método nativo muito mais elegante e expressivo para verificar se um texto está vazio ou preenchido apenas com espaços em branco: o .isBlank().

Além disso, usar o método .isEmpty() ou .isBlank() deixa o seu código muito mais legível para outros desenvolvedores, pois elimina a necessidade de usar o operador de negação ! combinado com as aspas duplas vazias.

Veja como o seu código ficaria aplicando esse refinamento de escrita limpa:

import java.time.LocalDate;
import java.time.LocalTime;

public class Exercicios {
    public static void main(String[] args) {
        String tarefa = "Enviar relatório semanal";
        LocalDate dataAtual = LocalDate.now();
        LocalTime horarioAtual = LocalTime.now();

        // .isBlank() verifica se a string está vazia ou cheia de espaços em branco
        if (tarefa.isBlank()) {
            System.out.println("Nenhuma tarefa ativa registrada.");
        } else {
            System.out.println("Executando tarefa: " + tarefa);
            System.out.println("Data de registro: " + dataAtual);
            System.out.println("Hora de registro: " + horarioAtual);
        }
    }
}

Modificar a estrutura para testar o cenário negativo primeiro (if tarefa vazia) costuma ser uma boa prática para "limpar" o código antes de executar a lógica principal do programa.

Você começou a trilha com o pé direito! Continue com essa constância fantástica nos próximos exercícios.

Espero que possa ter lhe ajudado!