Menu
Coddy logo textTech

Period und Duration

Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy — Lektion 57 von 59.

Period stellt eine datumsbasierte Zeitmenge dar (Jahre, Monate, Tage), während Duration eine zeitbasierte Menge darstellt (Stunden, Minuten, Sekunden).

Einen Period erstellen:

Period period = Period.of(1, 2, 15);
// 1 year, 2 months, 15 days

Eine Duration erstellen:

Duration duration = Duration.ofHours(2);
// 2 Stunden
Duration minutes = Duration.ofMinutes(90);
// 90 Minuten

Nach der Ausführung des obigen Codes, period enthält:

P1Y2M15D  // ISO-8601 format
challenge icon

Aufgabe

Einfach

Erstellen Sie eine Methode mit dem Namen calculateDifference, die vier Argumente annimmt:

  1. Ein String (start) im Format "yyyy-MM-dd HH:mm"
  2. Ein String (end) im Format "yyyy-MM-dd HH:mm"
  3. Ein String (unit) entweder "period" oder "duration"
  4. Ein String (format) entweder "full" oder "simple"

Die Methode sollte:

  1. Die Differenz zwischen den Start- und Enddaten berechnen
  2. Die Differenz im angegebenen Format zurückgeben

Die Rückgabemeldungen sollten sein:

  • Bei ungültigen Daten: "Invalid date format" zurückgeben
  • Bei ungültiger unit: "Invalid unit" zurückgeben
  • Bei ungültigem Format: "Invalid format" zurückgeben
  • Für period mit "full" Format: "Years: X, Months: Y, Days: Z"
  • Für period mit "simple" Format: "XyYmZd"
  • Für duration mit "full" Format: "Hours: X, Minutes: Y"
  • Für duration mit "simple" Format: "XhYm"

Spickzettel

Period stellt datumsbasierte Mengen dar (Jahre, Monate, Tage), während Duration zeitbasierte Mengen darstellt (Stunden, Minuten, Sekunden).

Eine Period erstellen:

Period period = Period.of(1, 2, 15);
// 1 year, 2 months, 15 days

Eine Duration erstellen:

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

Period verwendet das ISO-8601-Format:

P1Y2M15D  // 1 year, 2 months, 15 days

Probier es selbst

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) {
        // Schreibe deinen Code hier
    }
    
    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 iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf