Menu
Coddy logo textTech

Period と Duration

CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 57/59。

Period は、日付ベースの時間量(年、月、日)を表します。一方、Duration は、時間ベースの量(時間、分、秒)を表します。

Periodを作成:

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

Duration を作成する:

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

上記のコードを実行した後、period には以下が含まれます:

P1Y2M15D  // ISO-8601 format
challenge icon

チャレンジ

簡単

calculateDifference という名前のメソッドを作成し、4つの引数を受け取るようにしてください:

  1. フォーマット "yyyy-MM-dd HH:mm" の String(start
  2. フォーマット "yyyy-MM-dd HH:mm" の String(end
  3. "period" または "duration" のいずれかである String(unit
  4. "full" または "simple" のいずれかである String(format

このメソッドは以下を行うべきです:

  1. 開始日と終了日の差分を計算する
  2. 指定されたフォーマットで差分を返す

戻り値のメッセージは以下の通りです:

  • 日付が無効な場合: "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 days

Duration を作成:

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

Period は 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));
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン