MENU

Java 2つの日付の月数の差を求める

目次

Java 2つの日付の月数の差を求める

Java で、2つの日付の月数の差を求めるサンプルプログラムを紹介します。
サンプルプログラムでは比較対象の日付が、文字列( yyyy/MM/dd )の場合、java.util.Date の場合に対応しています。

月数の差を求める計算方法は以下となります。

  1. 最初に 2つの日付を 1日にします。
    ※ Calendar.set(Calendar.DATE, 1) を利用します。
  2. 次に 2 つの日付を一ヶ月単位で繰返し比較して行きます。
    ※ Calendar.add(Calendar.MONTH, 1または-1) を利用し、一ヶ月づつ月数を加算・減算していきます。
  3. 繰返し比較した回数をカウントします。


サンプルソース

実行

◆実行例

public static void main(String[] args) {
    int ret = differenceMonth("2008/6/30","2008/6/1");
    System.out.println("結果1 = "+ret);
    
    ret = differenceMonth("2008/7/1","2008/6/3");
    System.out.println("結果2 = "+ret);

    ret = differenceMonth("2008/12/20","2008/6/1");
    System.out.println("結果3 = "+ret);

    ret = differenceMonth("2010/6/20","2008/6/1");
    System.out.println("結果4 = "+ret);

    ret = differenceMonth("2008/6/1","2008/7/1");
    System.out.println("結果5 = "+ret);

    ret = differenceMonth("2008/7/1","2009/7/1");
    System.out.println("結果6 = "+ret);
}

◆実行結果

結果1 = 0
結果2 = 1
結果3 = 6
結果4 = 24
結果5 = -1
結果6 = -12

このサンプルプログラムは Chat&Messenger の「カレンダー・スケジュール管理機能」で実際に利用しています。

  • URLをコピーしました!
目次