0Pricing
Java Academy · レッスン

Periodと日付計算

日付を加算・減算します

「Periodと日付計算」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。

日付ベースの量

Durationが時間や秒単位で時間を測定するのに対し、Periodは年、月、日単位の量を測定します。年齢や締め切りなど、カレンダーに基づく計算に適したツールです。

日数の加算

LocalDateには、日付を先に進めるplusDaysがあります。結果は新しい不変の値になることに注意してください。

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate start = LocalDate.of(2026, 5, 30);
        System.out.println(start.plusDays(10));
    }
}

月と年の加算

plusMonthsとplusYearsを使うと、より大きな単位で日付を移動でき、月の日数の違いも正しく処理されます。

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate start = LocalDate.of(2026, 1, 31);
        System.out.println(start.plusMonths(1));
        System.out.println(start.plusYears(2));
    }
}

日付の減算

minusDays、minusWeeksなどのメソッドを使うと、時間をさかのぼれます。

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2026, 5, 30);
        System.out.println(date.minusWeeks(2));
    }
}

Periodの生成

ofまたはofMonthsなどの単一単位用ファクトリメソッドでPeriodを生成し、それを日付に加算します。

import java.time.LocalDate;
import java.time.Period;

public class Main {
    public static void main(String[] args) {
        Period p = Period.of(1, 2, 3);
        LocalDate date = LocalDate.of(2026, 1, 1);
        System.out.println(date.plus(p));
    }
}

日付間のPeriod

Period.betweenは、2つの日付の間隔を年、月、日として測定します。

import java.time.LocalDate;
import java.time.Period;

public class Main {
    public static void main(String[] args) {
        LocalDate from = LocalDate.of(2020, 1, 15);
        LocalDate to = LocalDate.of(2026, 5, 30);
        Period p = Period.between(from, to);
        System.out.println(p.getYears() + "y " + p.getMonths() + "m " + p.getDays() + "d");
    }
}

年齢の計算

Period.betweenの典型的な使い方は、満年齢を計算することです。

import java.time.LocalDate;
import java.time.Period;

public class Main {
    public static void main(String[] args) {
        LocalDate birth = LocalDate.of(2000, 6, 15);
        LocalDate today = LocalDate.of(2026, 5, 30);
        int age = Period.between(birth, today).getYears();
        System.out.println(age);
    }
}

合計日数のカウント

Periodは間隔を年、月、日に分けます。日数の合計だけを取得するには、代わりにChronoUnit.DAYS.betweenを使います。

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class Main {
    public static void main(String[] args) {
        LocalDate from = LocalDate.of(2026, 1, 1);
        LocalDate to = LocalDate.of(2026, 12, 31);
        long days = ChronoUnit.DAYS.between(from, to);
        System.out.println(days);
    }
}

ChronoUnitの柔軟性

ChronoUnitでは、DAYS、WEEKS、MONTHS、YEARSなど、多くの単位で数えられます。各between呼び出しは、単一の数値を返します。

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class Main {
    public static void main(String[] args) {
        LocalDate from = LocalDate.of(2026, 1, 1);
        LocalDate to = LocalDate.of(2026, 12, 31);
        System.out.println(ChronoUnit.WEEKS.between(from, to));
        System.out.println(ChronoUnit.MONTHS.between(from, to));
    }
}

次の曜日を見つける

TemporalAdjustersクラスには、翌月の初日に移動するなど、便利な日付調整機能があります。

import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2026, 5, 30);
        System.out.println(date.with(TemporalAdjusters.firstDayOfNextMonth()));
    }
}

PeriodとChronoUnitの違い

年、月、日という人間向けの内訳が必要な場合はPeriodを使います。1つの単位で合計値だけが必要な場合はChronoUnit.betweenを使います。

確認テスト

日付計算のスキルを確認しましょう。

まとめ

日付の計算について学びました。

  • plusDays、plusMonths、plusYearsで、日付を不変のまま移動します
  • Periodは年、月、日を測定し、年齢の計算などに適しています
  • Period.betweenは、間隔を人間向けの内訳で返します
  • ChronoUnit.betweenは、指定した単位で合計値を1つ返します
  • TemporalAdjustersは、翌月の初日などへの便利な移動を処理します

よくある質問

「Periodと日付計算」レッスンは無料ですか?

はい。「Periodと日付計算」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。

「Periodと日付計算」で何を学びますか?

日付を加算・減算します ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Java Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「Periodと日付計算」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJava Academyレッスンでコードを書いて実行できますか?

はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. LocalDate、LocalTime、LocalDateTime
  2. InstantとDuration
  3. Periodと日付計算
  4. DateTimeFormatterによる書式設定
← Java Academyに戻る