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:30Analizza un orario da una String nel formato HH:mm:
LocalTime time = LocalTime.parse("14:30"); // 14:30Una 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");
}Sfida
FacileCrea un metodo denominato processTime che accetti quattro argomenti:
- Una String (
timeStr) nel formato "HH:mm" - Un intero (
amount) da aggiungere o sottrarre - Una String (
unit) che sia "hours" oppure "minutes" - Una String (
operation) che sia "add" oppure "subtract"
Il metodo deve:
- Analizzare la stringa dell'ora in input
- Eseguire l'operazione specificata
- 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));
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Array multidimensionali
Concetti di base degli array 2DAccesso agli elementi degli array 2DCicli annidati con array 2DRiepilogo - Array 2DAddizione e sottrazione di matriciArray irregolariArray 3D e oltreSchemi comuni degli array 2DRiepilogo - Tutto sugli array4HashSet Parte 1
Che cos'è un HashSet?Aggiungere un elementoRimuovere un elementoVerificare se un elemento esisteVuoto e dimensioneSvuotare e clonareRipasso - HashSet7Gestione di base degli errori
Nozioni di base su try-catchBlocco finallyLancio di eccezioniEccezioni personalizzate10Data e ora
Nozioni di base su LocalDateOperazioni con LocalTimeUtilizzo di LocalDateTimePeriod e DurationFormattazione delle dateGestione dei fusi orari2HashMap Parte 1
Che cos'è una HashMap?Dichiarare una HashMapAccedere ai valoriVerificare se una chiave esisteModificare i dizionariRiepilogo - HashMap3HashMap Parte 2
Metodi di HashMapIterare con keySet()Iterare con entrySet()HashMap annidateRiepilogo - Gestire il magazzinoRiepilogo - Operazioni con HashMap6Flusso di controllo avanzato
Istruzioni con etichettaEspressione switchCorrispondenza dei patternClausole guardiaRiepilogo - Flusso di controllo9Progetto - Contatore di parole uniche
Inserimento e memorizzazione del testoElaborazione delle paroleEsercitati da solo: Compilatore Java online