Menu
Coddy logo textTech

Period e Duration

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

Period rappresenta una quantità di tempo basata sulla data (anni, mesi, giorni), mentre Duration rappresenta una quantità di tempo basata sull’ora (ore, minuti, secondi).

Crea un periodo:

Period period = Period.of(1, 2, 15);
// 1 anno, 2 mesi, 15 giorni

Crea una durata:

Duration duration = Duration.ofHours(2);
// 2 ore
Duration minutes = Duration.ofMinutes(90);
// 90 minuti

Dopo aver eseguito il codice riportato sopra, period contiene:

P1Y2M15D  // formato ISO-8601
challenge icon

Sfida

Facile

Crea un metodo denominato calculateDifference che accetta quattro argomenti:

  1. Una String (start) nel formato "yyyy-MM-dd HH:mm"
  2. Una String (end) nel formato "yyyy-MM-dd HH:mm"
  3. Una String (unit) che può essere "period" oppure "duration"
  4. Una String (format) che può essere "full" oppure "simple"

Il metodo dovrebbe:

  1. Calcolare la differenza tra le date di inizio e di fine
  2. Restituire la differenza nel formato specificato

I messaggi restituiti dovrebbero essere:

  • Se le date non sono valide: restituire "Invalid date format"
  • Se l'unità non è valida: restituire "Invalid unit"
  • Se il formato non è valido: restituire "Invalid format"
  • Per period con il formato "full": "Years: X, Months: Y, Days: Z"
  • Per period con il formato "simple": "XyYmZd"
  • Per duration con il formato "full": "Hours: X, Minutes: Y"
  • Per duration con il formato "simple": "XhYm"

Provalo tu

import java.util.Scanner;
import java.time.*;
import java.time.format.*;

public class Main {
    public static String calculateDifference(String start, String end, String unit, String format) {
        // Scrivi il tuo codice qui
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String start = scanner.nextLine();
        String end = scanner.nextLine();
        String unit = scanner.nextLine();
        String format = scanner.nextLine();
        
        System.out.println(calculateDifference(start, end, unit, format));
    }
}
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