Menu
CoddyTech

LocalTime の操作

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

Java の LocalTime は、日付やタイムゾーンを含まない時刻を表します。営業時間やスケジュールなどの時刻の値を扱うのに便利です。

現在の時刻を作成する:

LocalTime now = LocalTime.now();

特定の時刻を作成します。

LocalTime time = LocalTime.of(14, 30);
// 14:30 (午後2:30)

上記のコードを実行すると、timeには次の値が格納されます。

14:30

時刻を加算または減算します:

LocalTime time = LocalTime.of(14, 30);
LocalTime later = time.plusMinutes(45);  // 15:15
LocalTime earlier = time.minusHours(1);  // 13:30

HH:mm形式のStringから時刻を解析します。

LocalTime time = LocalTime.parse("14:30");  // 14:30

"25:70"のような有効な時刻ではない文字列を指定すると、parse()はLocalDate.parse()と同じ例外であるDateTimeParseExceptionをスローします。try-catchで捕捉します。

try {
    LocalTime time = LocalTime.parse("25:70");
} catch (DateTimeParseException e) {
    System.out.println("Invalid time format");
}
challenge icon

チャレンジ

簡単

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

  1. 形式が"HH:mm"の文字列(timeStr)
  2. 加算または減算する整数(amount)
  3. "hours"または"minutes"のいずれかの文字列(unit)
  4. "add"または"subtract"のいずれかの文字列(operation)

このメソッドでは、次の処理を行います。

  1. 入力された時刻文字列を解析する
  2. 指定された操作を実行する
  3. 結果に関する情報を整形して返す

返すメッセージは次のとおりです。

  • 時刻の形式が無効な場合:"Invalid time format"を返す
  • 単位が無効な場合:"Invalid unit"を返す
  • 操作が無効な場合:"Invalid operation"を返す
  • 成功した場合:"Original: [time], New: [new_time]"を返す

自分で試してみよう

import java.util.Scanner;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class Main {
    public static String processTime(String timeStr, int amount, String unit, String operation) {
        // ここにコードを書いてください
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String timeStr = scanner.nextLine();
        int amount = Integer.parseInt(scanner.nextLine());
        String unit = scanner.nextLine();
        String operation = scanner.nextLine();
        
        System.out.println(processTime(timeStr, amount, unit, operation));
    }
}
quiz icon腕試し

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

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

自分で練習してみよう: Javaオンラインコンパイラ