カテゴリ: Java 更新日: 2026/03/27

JavaのLocalDate.minusWeeksの使い方完全ガイド!初心者向けに日付操作をわかりやすく解説

LocalDateのminusWeeksメソッド
LocalDateのminusWeeksメソッド

先生と生徒の会話形式で理解しよう

生徒

「Javaで日付を一週間前に戻す方法ってありますか?」

先生

「ありますよ!java.timeパッケージのLocalDateクラスを使えば、簡単に一週間前や数週間前の日付を取得できます。」

生徒

「へぇ、それってどうやって使うんですか?」

先生

「それでは、JavaでminusWeeksメソッドを使って日付を操作する方法を一緒に見ていきましょう!」

1. java.timeパッケージとは?

「1. java.timeパッケージとは?」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

1. java.timeパッケージとは?
1. java.timeパッケージとは?

Javaで日付や時刻を扱う際によく使われるのがjava.timeパッケージです。このパッケージはJava8で導入されたもので、従来のjava.util.DateCalendarに比べて、直感的かつ安全に日付と時間を扱うことができます。

中でもLocalDateクラスは、「年月日」だけを扱いたいときに非常に便利です。時間は含まず、例えば「今日の日付」「1週間前の日付」「来月の15日」などをシンプルに扱えます。

2. LocalDateクラスとは?

2. LocalDateクラスとは?
2. LocalDateクラスとは?

LocalDateクラスは、Javaのjava.timeパッケージに含まれており、日付(年・月・日)を表すのに特化したクラスです。

例えば、現在の日付を取得したり、数日・数週間・数ヶ月前や未来の日付を計算したい場合に使われます。時刻やタイムゾーン情報は持ちません。

日付計算に便利なメソッドが多数用意されており、今回紹介するminusWeeksもそのひとつです。

3. minusWeeksメソッドとは?

3. minusWeeksメソッドとは?
3. minusWeeksメソッドとは?

minusWeeksメソッドは、現在のLocalDateオブジェクトから指定した週数を引いた日付を返すメソッドです。元のオブジェクトは変更されず、新しいLocalDateインスタンスが返されます。

このメソッドは日付の計算をするときにとても便利で、たとえば「1週間前」「3週間前」などを簡単に取得できます。

4. minusWeeksの基本的な使い方

「4. minusWeeksの基本的な使い方」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. minusWeeksの基本的な使い方
4. minusWeeksの基本的な使い方

それでは、JavaでminusWeeksメソッドを使って日付を1週間前に戻す基本的なサンプルコードを見てみましょう。


import java.time.LocalDate;

public class MinusWeeksExample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now(); // 今日の日付を取得
        LocalDate lastWeek = today.minusWeeks(1); // 1週間前の日付を計算

        System.out.println("今日の日付: " + today);
        System.out.println("1週間前の日付: " + lastWeek);
    }
}

このように、minusWeeks(1)とするだけで、現在の日付から1週間前の日付を求めることができます。

5. 実行結果の例

5. 実行結果の例
5. 実行結果の例

今日の日付: 2025-09-04
1週間前の日付: 2025-08-28

このように、現在の日付が2025年9月4日だった場合、1週間前は2025年8月28日になります。

6. 他の週数を引く使い方

6. 他の週数を引く使い方
6. 他の週数を引く使い方

minusWeeksメソッドには好きな週数を指定できます。例えば、2週間前や3週間前を取得したいときは以下のようにします。


LocalDate twoWeeksAgo = LocalDate.now().minusWeeks(2);
LocalDate threeWeeksAgo = LocalDate.now().minusWeeks(3);

このように、週単位で過去の日付を簡単に求めることができるため、定期処理やデータの履歴管理などにも応用できます。

7. minusWeeksとマイナス値の関係

「7. minusWeeksとマイナス値の関係」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. minusWeeksとマイナス値の関係
7. minusWeeksとマイナス値の関係

もし将来の日付を取得したい場合には、minusWeeksにマイナスの値を渡すことも可能です。


LocalDate nextWeek = LocalDate.now().minusWeeks(-1); // 1週間後

このように、minusWeeks(-1)とすれば、逆に1週間後の日付を取得することができます。ただし、コードの可読性のためには、plusWeeks(1)のようにplusWeeksを使ったほうがわかりやすい場合もあります。

8. minusWeeksを使うときの注意点

8. minusWeeksを使うときの注意点
8. minusWeeksを使うときの注意点

minusWeeksを使うときは、以下のような点に注意しましょう:

  • 日付の計算結果は新しいLocalDateオブジェクトになります(元の変数は変更されません)
  • マイナス値も使えるが、可読性の観点からはplusWeeksとの使い分けが重要
  • ローカル日付であるため、タイムゾーンの影響は受けません(必要ならZonedDateTimeを使う)

9. 実用例:レポート作成日の自動取得

9. 実用例:レポート作成日の自動取得
9. 実用例:レポート作成日の自動取得

たとえば、毎週のレポートで「1週間前のデータ」を自動で取得したい場合、以下のようなコードで対応できます。


public class ReportDateExample {
    public static void main(String[] args) {
        LocalDate reportDate = LocalDate.now().minusWeeks(1);
        System.out.println("レポート作成対象日: " + reportDate);
    }
}

このように、ビジネス用途にも簡単に活用できるのがminusWeeksメソッドの魅力です。

10. JavaのLocalDate.minusWeeksは日付計算に必須!

「10. JavaのLocalDate.minusWeeksは日付計算に必須!」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

10. JavaのLocalDate.minusWeeksは日付計算に必須!
10. JavaのLocalDate.minusWeeksは日付計算に必須!

JavaのLocalDateクラスとminusWeeksメソッドを使えば、初心者でも簡単に「1週間前」などの計算ができるようになります。日付操作の基本として、ぜひ覚えておきましょう。

カテゴリの一覧へ
新着記事
New1
Java
JavaのBigDecimalクラスmaxメソッドを完全解説!初心者でもわかる数値比較
更新記事
New2
Java
JavaのLocalDate.minusWeeksの使い方完全ガイド!初心者向けに日付操作をわかりやすく解説
新規投稿
New3
Java
JavaのTreeMapクラスの使い方を完全ガイド!初心者でもわかるソート付きマップ
更新記事
New4
Spring
Javaの@Controllerアノテーションを完全ガイド!初心者でもわかるSpringの使い方
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Thymeleaf
Thymeleafのth:checkedの使い方!チェックボックスON/OFFを動的に制御する方法
No.3
Java&Spring記事人気No3
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.4
Java&Spring記事人気No4
Java
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.5
Java&Spring記事人気No5
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.6
Java&Spring記事人気No6
JSP
JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう
No.7
Java&Spring記事人気No7
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.8
Java&Spring記事人気No8
Spring
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ