目次
Java 2つの日付の月数の差を求める
Java で、2つの日付の月数の差を求めるサンプルプログラムを紹介します。
サンプルプログラムでは比較対象の日付が、文字列( yyyy/MM/dd )の場合、java.util.Date の場合に対応しています。
月数の差を求める計算方法は以下となります。
- 最初に 2つの日付を 1日にします。
※ Calendar.set(Calendar.DATE, 1) を利用します。 - 次に 2 つの日付を一ヶ月単位で繰返し比較して行きます。
※ Calendar.add(Calendar.MONTH, 1または-1) を利用し、一ヶ月づつ月数を加算・減算していきます。 - 繰返し比較した回数をカウントします。
サンプルソース
実行
◆実行例
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 の「カレンダー・スケジュール管理機能」で実際に利用しています。