ビジネスチャット、テレビ会議、文書管理、スケジュールを統合。IP Messenger 互換。基本無料!

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. 繰返し比較した回数をカウントします。
 お勧めフリーソフト

当サイトで公開している Chat&Messenger は 10年以上の実績がある基本無料の国産ビジネスチャットツールです。ユーザを自動認識して直ぐにチャット、テレビ会議、スケジュール管理などが無料で利用できます。(Windows / Mac / Android / iOS)

サンプルソース

実行

◆実行例
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 の「カレンダー・スケジュール管理機能」で実際に利用しています。