Menu
CoddyTech

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 calendarios.

Crea la fecha de hoy:

LocalDate today = LocalDate.now();

Crea 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 distintas 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"

Analiza 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 gestionarlo:

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

Suma o resta 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) con el formato "yyyy-MM-dd"
  2. Un entero (days) para sumar o restar
  3. Un String (operation) que 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 con formato sobre el resultado

Los mensajes devueltos deben ser:

  • Si el formato de fecha no es válido: devolver "Invalid date format"
  • Si la operación no es válida: devolver "Invalid operation"
  • Si la operación tiene éxito: devolver "Original: [date], New: [new_date], Day of week: [day_name]", donde [day_name] es el día de la semana de la nueva fecha, en mayúsculas (por ejemplo, WEDNESDAY)

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

Practica por tu cuenta: Compilador de Java online