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 daysEine Duration erstellen:
Duration duration = Duration.ofHours(2);
// 2 Stunden
Duration minutes = Duration.ofMinutes(90);
// 90 MinutenNach der Ausführung des obigen Codes, period enthält:
P1Y2M15D // ISO-8601 formatAufgabe
EinfachErstellen Sie eine Methode mit dem Namen calculateDifference, die vier Argumente annimmt:
- Ein String (
start) im Format "yyyy-MM-dd HH:mm" - Ein String (
end) im Format "yyyy-MM-dd HH:mm" - Ein String (
unit) entweder "period" oder "duration" - Ein String (
format) entweder "full" oder "simple"
Die Methode sollte:
- Die Differenz zwischen den Start- und Enddaten berechnen
- 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 daysEine Duration erstellen:
Duration duration = Duration.ofHours(2);
// 2 hours
Duration minutes = Duration.ofMinutes(90);
// 90 minutesPeriod verwendet das ISO-8601-Format:
P1Y2M15D // 1 year, 2 months, 15 daysProbier 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));
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen der 2D-ArraysZugriff auf 2D-Array-ElementeVerschachtelte Schleifen mit 2D-ArraysZusammenfassung - 2D-ArraysMatrixaddition & SubtraktionJagged Arrays3D-Arrays und darüber hinausGängige 2D-Array-MusterZusammenfassung - Alles über Arrays4HashSet Teil 1
Was ist ein HashSet?Ein Element hinzufügenEin Element entfernenPrüfen, ob ein Element vorhanden istLeer und GrößeLeeren und KlonenZusammenfassung - HashSet10Datum und Zeit
LocalDate GrundlagenLocalTime OperationenLocalDateTime VerwendungPeriod und DurationDatumsformatierungZeitzonenbehandlung2HashMap Teil 1
Was ist eine HashMap?Eine HashMap deklarierenWerte abrufenPrüfen, ob ein Schlüssel existiertWörterbücher modifizierenZusammenfassung - HashMap3HashMap Teil 2
HashMap-MethodenMit keySet() iterierenMit entrySet() iterierenVerschachtelte HashMapZusammenfassung - Lager verwaltenZusammenfassung - HashMap-Operationen6Erweiterter Steuerungsfluss
Beschriftete AnweisungenSwitch-AusdruckMusterabgleichSchutzklauselnZusammenfassung - Steuerungsfluss9Projekt - Einzigartiger Wortzähler
Texteingabe und SpeicherungWortverarbeitung