Period と Duration
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 57/59。
Period は、日付ベースの時間量(年、月、日)を表します。一方、Duration は、時間ベースの量(時間、分、秒)を表します。
Periodを作成:
Period period = Period.of(1, 2, 15);
// 1 year, 2 months, 15 daysDuration を作成する:
Duration duration = Duration.ofHours(2);
// 2 hours
Duration minutes = Duration.ofMinutes(90);
// 90 minutes上記のコードを実行した後、period には以下が含まれます:
P1Y2M15D // ISO-8601 formatチャレンジ
簡単calculateDifference という名前のメソッドを作成し、4つの引数を受け取るようにしてください:
- フォーマット "yyyy-MM-dd HH:mm" の String(
start) - フォーマット "yyyy-MM-dd HH:mm" の String(
end) - "period" または "duration" のいずれかである String(
unit) - "full" または "simple" のいずれかである String(
format)
このメソッドは以下を行うべきです:
- 開始日と終了日の差分を計算する
- 指定されたフォーマットで差分を返す
戻り値のメッセージは以下の通りです:
- 日付が無効な場合: "Invalid date format" を返す
- unit が無効な場合: "Invalid unit" を返す
- format が無効な場合: "Invalid format" を返す
- period で "full" フォーマットのとき: "Years: X, Months: Y, Days: Z"
- period で "simple" フォーマットのとき: "XyYmZd"
- duration で "full" フォーマットのとき: "Hours: X, Minutes: Y"
- duration で "simple" フォーマットのとき: "XhYm"
チートシート
Period は日付ベースの量(年、月、日)を表し、Duration は時間ベースの量(時間、分、秒)を表します。
Period を作成:
Period period = Period.of(1, 2, 15);
// 1 year, 2 months, 15 daysDuration を作成:
Duration duration = Duration.ofHours(2);
// 2 hours
Duration minutes = Duration.ofMinutes(90);
// 90 minutesPeriod は ISO-8601 形式を使用:
P1Y2M15D // 1 year, 2 months, 15 days自分で試してみよう
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) {
// ここにコードを記述してください
}
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));
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。