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, días festivos o horarios.

Crea 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

Obtén 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 a partir de una cadena:

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

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

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

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

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 reciba tres argumentos:

  1. Un String (dateStr) en formato "yyyy-MM-dd"
  2. Un entero (days) para sumar o restar
  3. Un String (operation) ya sea "add" o "subtract"

El método debe:

  1. Analizar la cadena de fecha de entrada
  2. Sumar 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]"

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