Menu
Coddy logo textTech

Uso de LocalDateTime

Parte de la sección Lógica y Flujo del Journey de Java de Coddy. Lección 56 de 59.

LocalDateTime en Java combina tanto la fecha como la hora. Es útil cuando necesitas trabajar con ambos componentes, como horarios de eventos o marcas de tiempo.

Crear fecha y hora actual

LocalDateTime now = LocalDateTime.now();

Crear una fecha y hora específicas:

LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
// 2024-03-15 14:30

Después de ejecutar el código anterior, dateTime contiene:

2024-03-15T14:30

Formatear una fecha y hora:

LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
String formatted = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
challenge icon

Desafío

Fácil

Crea un método llamado processDateTime que acepte cuatro argumentos:

  1. Un String (dateTimeStr) con el formato "yyyy-MM-dd HH:mm"
  2. Un entero (amount) que se sumará o restará
  3. Un String (unit) que sea "hours", "days" o "months"
  4. Un String (operation) que sea "add" o "subtract"

El método debe:

  1. Analizar la cadena de fecha y hora de entrada
  2. Realizar la operación especificada
  3. Devolver información con formato sobre el resultado

Los mensajes devueltos deben ser:

  • Si el formato no es válido: devolver "Invalid date time format"
  • Si la unidad no es válida: devolver "Invalid unit"
  • Si la operación no es válida: devolver "Invalid operation"
  • En caso de éxito: devolver "Original: [datetime], New: [new_datetime], Day: [day_name]"

Pruébalo tú mismo

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

public class Main {
    public static String processDateTime(String dateTimeStr, int amount, String unit, String operation) {
        // Escribe tu código aquí
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String dateTimeStr = scanner.nextLine();
        int amount = Integer.parseInt(scanner.nextLine());
        String unit = scanner.nextLine();
        String operation = scanner.nextLine();
        
        System.out.println(processDateTime(dateTimeStr, amount, unit, 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