Menu
Coddy logo textTech

Fundamentos de LocalDate

Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 54 de 59.

LocalDate en Java representa una fecha sin hora ni zona horaria. Se utiliza para trabajar con fechas como cumpleaños, festivos o horarios.

Crear la fecha de hoy:

LocalDate today = LocalDate.now();

Crear una fecha específica:

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

Después de ejecutar el código anterior, date contiene: 2024-03-15

Obtener diferentes partes de una fecha:

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

Analizar una fecha desde un String:

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

Importante: Si el formato de la cadena es inválido, parse() lanza una DateTimeParseException. Utilice try-catch para manejar esto:

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

Sumar o restar días:

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

Después de ejecutar el código anterior:

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

Desafío

Fácil

Crea un método llamado processDate que tome tres argumentos:

  1. Una cadena (dateStr) en formato "yyyy-MM-dd"
  2. Un entero (days) para agregar o restar
  3. Una cadena (operation) que sea "add" o "subtract"

El método debe:

  1. Analizar la cadena de fecha de entrada
  2. Agregar o restar el número especificado de días
  3. Devolver información formateada sobre el resultado

Los mensajes de retorno deben ser:

  • Si el formato de fecha es inválido: devolver "Invalid date format"
  • Si la operación es inválida: devolver "Invalid operation"
  • En caso de éxito: devolver "Original: [date], New: [new_date], Day of week: [day_name]"

Hoja de referencia

LocalDate representa una fecha sin hora ni zona horaria en Java.

Crear la fecha de hoy:

LocalDate today = LocalDate.now();

Crear una fecha específica:

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

Obtener diferentes partes de una fecha:

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"

Analizar una fecha desde un String:

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

Añadir o restar días:

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

Pruébalo tú mismo

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) {
        // Escribe tu código aquí
    }
    
    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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo