Menu
Coddy logo textTech

Operaciones con LocalTime

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

LocalTime en Java representa una hora sin fecha ni zona horaria. Es útil para trabajar con valores de hora del día como horarios de apertura o programaciones.

Crear hora actual:

LocalTime now = LocalTime.now();

Crear una hora específica:

LocalTime time = LocalTime.of(14, 30);
// 14:30 (2:30 PM)

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

14:30

Añadir o restar tiempo:

LocalTime time = LocalTime.of(14, 30);
LocalTime later = time.plusMinutes(45);  // 15:15
LocalTime earlier = time.minusHours(1);  // 13:30
challenge icon

Desafío

Fácil

Crea un método llamado processTime que tome cuatro argumentos:

  1. Una String (timeStr) en formato "HH:mm"
  2. Un entero (amount) para sumar o restar
  3. Una String (unit) ya sea "hours" o "minutes"
  4. Una String (operation) ya sea "add" o "subtract"

El método debe:

  1. Parsear la cadena de tiempo de entrada
  2. Realizar la operación especificada
  3. Devolver información formateada sobre el resultado

Los mensajes de retorno deben ser:

  • Si formato de tiempo inválido: devolver "Invalid time format"
  • Si unidad inválida: devolver "Invalid unit"
  • Si operación inválida: devolver "Invalid operation"
  • Para éxito: devolver "Original: [time], New: [new_time]"

Hoja de referencia

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

Crear hora actual:

LocalTime now = LocalTime.now();

Crear una hora específica:

LocalTime time = LocalTime.of(14, 30);  // 14:30 (2:30 PM)

Añadir o restar tiempo:

LocalTime time = LocalTime.of(14, 30);
LocalTime later = time.plusMinutes(45);  // 15:15
LocalTime earlier = time.minusHours(1);  // 13:30

Pruébalo tú mismo

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

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