Menu
Coddy logo textTech

LocalDate の基本

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

Java の LocalDate は、時間やタイムゾーンを含まない日付を表します。誕生日、祝日、スケジュールなどの日付を扱うために使用されます。

今日の日付を作成:

LocalDate today = LocalDate.now();

特定の日期を作成:

LocalDate date = LocalDate.of(2024, 3, 15);

上記のコードを実行した後、date には 2024-03-15 が含まれます。

日付の各部分を取得:

LocalDate date = LocalDate.of(2024, 3, 15);
int year = date.getYear();      // 2024
int month = date.getMonthValue(); // 3
int day = date.getDayOfMonth();   // 15

文字列から日付を解析:

LocalDate date = LocalDate.parse("2024-03-15");  // 形式: "yyyy-MM-dd"

重要: 文字列の形式が無効な場合、parse()DateTimeParseException をスローします。これを処理するには try-catch を使用してください:

try {
    LocalDate date = LocalDate.parse("invalid-date");
} catch (DateTimeParseException e) {
    System.out.println("Invalid date format");
}

日を加算または減算:

LocalDate date = LocalDate.of(2024, 3, 15);
LocalDate future = date.plusDays(10);    // 2024-03-25
LocalDate past = date.minusDays(5);      // 2024-03-10

上記のコードを実行した後:

  • future: 2024-03-25
  • past: 2024-03-10
challenge icon

チャレンジ

簡単

processDate という名前のメソッドを作成し、3 つの引数を受け取る:

  1. 形式 "yyyy-MM-dd" の String (dateStr)
  2. 加算または減算する整数 (days)
  3. "add" または "subtract" の String (operation)

このメソッドは以下を行う:

  1. 入力された日付文字列を解析する
  2. 指定された日数を加算または減算する
  3. 結果に関する整形された情報を返す

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

  • 日付形式が無効な場合: "Invalid date format" を返す
  • 操作が無効な場合: "Invalid operation" を返す
  • 成功時: "Original: [date], New: [new_date], Day of week: [day_name]" を返す

チートシート

LocalDate は、Java で時間やタイムゾーンを含まない日付を表します。

今日の日付を作成:

LocalDate today = LocalDate.now();

特定の日期を作成:

LocalDate date = LocalDate.of(2024, 3, 15);

日付の異なる部分を取得:

LocalDate date = LocalDate.of(2024, 3, 15);
int year = date.getYear();      // 2024
int month = date.getMonthValue(); // 3
int day = date.getDayOfMonth();   // 15
String dayOfWeek = date.getDayOfWeek().toString();  // "FRIDAY"

String から日付を解析:

LocalDate date = LocalDate.parse("2024-03-15");  // Format: "yyyy-MM-dd"

日を追加または減算:

LocalDate date = LocalDate.of(2024, 3, 15);
LocalDate future = date.plusDays(10);    // 2024-03-25
LocalDate past = date.minusDays(5);      // 2024-03-10

自分で試してみよう

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

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

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

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