Menu
Coddy logo textTech

Básicos do LocalDate

Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 54 de 59.

LocalDate no Java representa uma data sem hora ou fuso horário. É usado para trabalhar com datas como aniversários, feriados ou agendas.

Crie a data de hoje:

LocalDate today = LocalDate.now();

Crie uma data específica:

LocalDate date = LocalDate.of(2024, 3, 15);

Após executar o código acima, date contém: 2024-03-15

Obtenha diferentes partes de uma data:

LocalDate date = LocalDate.of(2024, 3, 15);
int year = date.getYear();      // 2024
int month = date.getMonthValue(); // 3
int day = date.getDayOfMonth();   // 15

Analisar uma data a partir de uma String:

LocalDate date = LocalDate.parse("2024-03-15");  // Formato: "yyyy-MM-dd"

Importante: Se o formato da string for inválido, parse() lança uma DateTimeParseException. Use try-catch para tratar isso:

try {
    LocalDate date = LocalDate.parse("invalid-date");
} catch (DateTimeParseException e) {
    System.out.println("Invalid date format");
}

Adicione ou subtraia dias:

LocalDate date = LocalDate.of(2024, 3, 15);
LocalDate future = date.plusDays(10);    // 2024-03-25
LocalDate past = date.minusDays(5);      // 2024-03-10

Após executar o código acima:

  • future: 2024-03-25
  • past: 2024-03-10
challenge icon

Desafio

Fácil

Crie um método chamado processDate que recebe três argumentos:

  1. Uma String (dateStr) no formato "yyyy-MM-dd"
  2. Um inteiro (days) para adicionar ou subtrair
  3. Uma String (operation) que seja "add" ou "subtract"

O método deve:

  1. Analisar a string de data de entrada
  2. Adicionar ou subtrair o número especificado de dias
  3. Retornar informações formatadas sobre o resultado

As mensagens de retorno devem ser:

  • Se formato de data inválido: retorne "Invalid date format"
  • Se operação inválida: retorne "Invalid operation"
  • Em caso de sucesso: retorne "Original: [date], New: [new_date], Day of week: [day_name]"

Folha de consulta

LocalDate representa uma data sem hora ou fuso horário no Java.

Crie a data de hoje:

LocalDate today = LocalDate.now();

Crie uma data específica:

LocalDate date = LocalDate.of(2024, 3, 15);

Obtenha diferentes partes de uma data:

LocalDate date = LocalDate.of(2024, 3, 15);
int year = date.getYear();      // 2024
int month = date.getMonthValue(); // 3
int day = date.getDayOfMonth();   // 15
String dayOfWeek = date.getDayOfWeek().toString();  // "FRIDAY"

Analise uma data a partir de uma String:

LocalDate date = LocalDate.parse("2024-03-15");  // Formato: "yyyy-MM-dd"

Adicione ou subtraia dias:

LocalDate date = LocalDate.of(2024, 3, 15);
LocalDate future = date.plusDays(10);    // 2024-03-25
LocalDate past = date.minusDays(5);      // 2024-03-10

Experimente você mesmo

import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class Main {
    public static String processDate(String dateStr, int days, String operation) {
        // Escreva seu código aqui
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String dateStr = scanner.nextLine();
        int days = Integer.parseInt(scanner.nextLine());
        String operation = scanner.nextLine();
        
        System.out.println(processDate(dateStr, days, operation));
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo