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
String dayOfWeek = date.getDayOfWeek().toString(); // "FRIDAY"Stringから日付を解析する:
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-25past: 2024-03-10
チャレンジ
簡単processDateという名前のメソッドを作成し、次の3つの引数を受け取るようにします。
- 形式が"yyyy-MM-dd"の文字列(
dateStr) - 加算または減算する整数(
days) - "add"または"subtract"のいずれかの文字列(
operation)
このメソッドは次の処理を行います。
- 入力された日付文字列を解析する
- 指定された日数を加算または減算する
- 結果に関する情報を整形して返す
返すメッセージは次のとおりです。
- 日付形式が無効な場合:"Invalid date format"を返す
- 操作が無効な場合:"Invalid operation"を返す
- 成功した場合:"Original: [date], New: [new_date], Day of week: [day_name]"を返す。[day_name]は新しい日付の曜日を大文字で表したものです(例:
WEDNESDAY)。
自分で試してみよう
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));
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Javaオンラインコンパイラ