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-10Después de ejecutar el código anterior:
future: 2024-03-25past: 2024-03-10
Desafío
FácilCrea un método llamado processDate que reciba tres argumentos:
- Un String (
dateStr) en formato "yyyy-MM-dd" - Un entero (
days) para sumar o restar - Un String (
operation) ya sea "add" o "subtract"
El método debe:
- Analizar la cadena de fecha de entrada
- Sumar o restar el número especificado de días
- 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));
}
}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
1Arreglos Multidimensionales
Básicos de Arreglos 2DAccediendo a Elementos de Arreglos 2DBucles Anidados con Arreglos 2DResumen - Arreglos 2DSuma y Resta de MatricesArreglos IrregularesArreglos 3D y Más AlláPatrones Comunes de Arreglos 2DResumen - Todo Sobre Arreglos4HashSet Parte 1
¿Qué es un HashSet?Agregando un elementoEliminando un elementoComprobando si existe un elementoVacío y tamañoLimpiar y clonarResumen - HashSet7Manejo Básico de Errores
Básicos de Try-CatchBloque FinallyLanzamiento de ExcepcionesExcepciones Personalizadas10Fecha y Hora
Fundamentos de LocalDateOperaciones con LocalTimeUso de LocalDateTimePeriod y DurationFormato de fechasManejo de zonas horarias2HashMap Parte 1
¿Qué es un HashMap?Declarar un HashMapAcceder a ValoresVerificar si una Clave ExisteModificar DiccionariosResumen - HashMap3HashMap Parte 2
Métodos de HashMapIterar con keySet()Iterar con entrySet()HashMap AnidadoResumen - Gestionar AlmacénResumen - Operaciones de HashMap6Flujo de Control Avanzado
Sentencias EtiquetadasExpresión SwitchCoincidencia de PatronesCláusulas de GuardiaResumen - Flujo de Control9Proyecto - Contador de Palabras Únicas
Entrada y Almacenamiento de TextoProcesamiento de PalabrasPractica por tu cuenta: Compilador de Java online