Javaで日付の引き算をマスターする!
1. Javaにおける日付引き算の基本
Javaでは、java.timeパッケージのLocalDate、LocalDateTime、Period、Durationクラスを使用して日付の引き算を行います。
これらのクラスはJava 8から導入され、古いDateやCalendarクラスよりも直感的に日付や時間の操作が可能になりました。

ソースコード例
1 2 |
import java.time.LocalDate; import java.time.Period; |
2. LocalDateクラスを使用した日付の引き算
まず、LocalDateクラスを使用して日付の引き算を行ってみましょう。以下の例では、現在の日付から10日前の日付を取得しています。

ソースコード例
1 2 3 4 5 6 7 8 |
public class Program { public static void main(String[] args) { LocalDate today = LocalDate.now(); LocalDate tenDaysAgo = today.minusDays(10); System.out.println("Today's date: " + today); System.out.println("Date 10 days ago: " + tenDaysAgo); } } |
出力結果
Today's date: 2023-06-01
Date 10 days ago: 2023-05-22

3. Periodクラスを使用した日付の引き算
次に、Periodクラスを使用した日付の引き算を見てみましょう。Periodクラスは年、月、日の間隔を表し、日付の差分を計算するのに便利です。

ソースコード例
1 2 3 4 5 6 7 8 |
public class Program { public static void main(String[] args) { LocalDate today = LocalDate.now(); LocalDate aYearAgo = today.minus(Period.ofYears(1)); System.out.println("Today's date: " + today); System.out.println("Date a year ago: " + aYearAgo); } } |
出力結果
Today's date: 2023-06-01
Date a year ago: 2022-06-01

4. LocalDateTimeとDurationを使用した時間の引き算
最後に、LocalDateTimeとDurationを使用して時間の引き算を行ってみましょう。Durationクラスは時間、分、秒、ナノ秒の間隔を表します。

ソースコード例
1 2 3 4 5 6 7 8 9 10 11 |
import java.time.LocalDateTime; import java.time.Duration; public class Program { public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); LocalDateTime anHourAgo = now.minus(Duration.ofHours(1)); System.out.println("Current time: " + now); System.out.println("Time an hour ago: " + anHourAgo); } } |
出力結果
Current time: 2023-06-01T10:30:00
Time an hour ago: 2023-06-01T09:30:00

5. まとめ
以上、Javaでの日付や時間の引き算について解説しました。
Java 8以降では、java.timeパッケージのLocalDate、LocalDateTime、Period、Durationクラスを使って直感的に日付や時間の操作が可能になっています。
特に日付の引き算は、開発の中でよく使う操作なので、しっかりと理解しておくことをおすすめします。

最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!
