Nozioni di base su LocalDate
Fa parte della sezione Logica e flusso del percorso Java di Coddy. Lezione 54 di 59.
LocalDate in Java rappresenta una data senza ora né fuso orario. Si usa per lavorare con date come compleanni, festività o orari.
Crea la data di oggi:
LocalDate today = LocalDate.now();Crea una data specifica:
LocalDate date = LocalDate.of(2024, 3, 15);Dopo aver eseguito il codice qui sopra, date contiene: 2024-03-15
Ottieni le diverse parti di una data:
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"Analizza una data da una stringa:
LocalDate date = LocalDate.parse("2024-03-15"); // Formato: "yyyy-MM-dd"Importante: Se il formato della stringa non è valido, parse() genera una DateTimeParseException. Usa try-catch per gestire questo caso:
try {
LocalDate date = LocalDate.parse("invalid-date");
} catch (DateTimeParseException e) {
System.out.println("Invalid date format");
}Aggiungi o sottrai giorni:
LocalDate date = LocalDate.of(2024, 3, 15);
LocalDate future = date.plusDays(10); // 2024-03-25
LocalDate past = date.minusDays(5); // 2024-03-10Dopo aver eseguito il codice sopra:
future: 2024-03-25past: 2024-03-10
Sfida
FacileCrea un metodo chiamato processDate che accetti tre argomenti:
- Una stringa (
dateStr) nel formato "yyyy-MM-dd" - Un numero intero (
days) da aggiungere o sottrarre - Una stringa (
operation) che sia "add" oppure "subtract"
Il metodo dovrebbe:
- Analizzare la stringa della data in input
- Aggiungere o sottrarre il numero di giorni specificato
- Restituire informazioni formattate sul risultato
I messaggi restituiti dovrebbero essere:
- Se il formato della data non è valido: restituire "Invalid date format"
- Se l'operazione non è valida: restituire "Invalid operation"
- In caso di successo: restituire "Original: [date], New: [new_date], Day of week: [day_name]"
Provalo tu
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) {
// Scrivi qui il tuo codice
}
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));
}
}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