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フィードバックを取得できます。ローカル設定は不要です。