Menu
CoddyTech

Operazioni con LocalTime

Fa parte della sezione Logica e flusso del percorso Java di Coddy. Lezione 55 di 59.

LocalTime in Java rappresenta un orario senza data o fuso orario. È utile per lavorare con valori di ora del giorno, come gli orari di apertura o i programmi.

Crea l'ora attuale:

LocalTime now = LocalTime.now();

Crea un orario specifico:

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

Dopo aver eseguito il codice sopra, time contiene:

14:30

Aggiungi o sottrai tempo:

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

Analizza un orario da una String nel formato HH:mm:

LocalTime time = LocalTime.parse("14:30");  // 14:30

Una stringa che non è un orario valido, come "25:70", fa sì che parse() generi una DateTimeParseException, la stessa eccezione di LocalDate.parse(). Intercettala con try-catch:

try {
    LocalTime time = LocalTime.parse("25:70");
} catch (DateTimeParseException e) {
    System.out.println("Invalid time format");
}
challenge icon

Sfida

Facile

Crea un metodo denominato processTime che accetti quattro argomenti:

  1. Una String (timeStr) nel formato "HH:mm"
  2. Un intero (amount) da aggiungere o sottrarre
  3. Una String (unit) che sia "hours" oppure "minutes"
  4. Una String (operation) che sia "add" oppure "subtract"

Il metodo deve:

  1. Analizzare la stringa dell'ora in input
  2. Eseguire l'operazione specificata
  3. Restituire informazioni formattate sul risultato

I messaggi restituiti devono essere:

  • Se il formato dell'ora non è valido: restituire "Invalid time format"
  • Se l'unità non è valida: restituire "Invalid unit"
  • Se l'operazione non è valida: restituire "Invalid operation"
  • In caso di esito positivo: restituire "Original: [time], New: [new_time]"

Provalo tu

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) {
        // Scrivi il tuo codice qui
    }
    
    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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Java online