Menu
Coddy logo textTech

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-10

Dopo aver eseguito il codice sopra:

  • future: 2024-03-25
  • past: 2024-03-10
challenge icon

Sfida

Facile

Crea un metodo chiamato processDate che accetti tre argomenti:

  1. Una stringa (dateStr) nel formato "yyyy-MM-dd"
  2. Un numero intero (days) da aggiungere o sottrarre
  3. Una stringa (operation) che sia "add" oppure "subtract"

Il metodo dovrebbe:

  1. Analizzare la stringa della data in input
  2. Aggiungere o sottrarre il numero di giorni specificato
  3. 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));
    }
}
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