ビジネスチャット、ビデオ通話、文書管理、スケジュールを統合。IP Messenger 互換。基本無料!

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

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

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

日付の差を求める計算方法は以下となります。
  1. 最初に 2 つの日付を long 値に変換します。
    ※この long 値は 1970 年 1 月 1 日 00:00:00 GMT からの経過ミリ秒数となります。
  2. 次にその差を求めます。
  3. 上記の計算で出た数量を 1 日の時間で割ることで日付の差を求めることができます。
    ※1 日 (24 時間) は、86,400,000 ミリ秒です。
 お勧めフリーソフト

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

サンプルソース

実行

◆実行例
public static void main(String[] args) {
    int ret = differenceDays("2008/6/2","2008/6/1");
    System.out.println("結果1 = "+ret);
    
    ret = differenceDays("2008/6/1","2008/6/3");
    System.out.println("結果2 = "+ret);

    // 5月の日数は31日
    ret = differenceDays("2008/6/1","2008/5/1");
    System.out.println("結果3 = "+ret);

    // 6月の日数は30日
    ret = differenceDays("2008/7/1","2008/6/1");
    System.out.println("結果4 = "+ret);

    // 2008年は閏年のため2月の月末日付は29日
    ret = differenceDays("2008/3/1","2008/2/28");
    System.out.println("結果5 = "+ret);
}
◆実行結果
結果1 = 1
結果2 = -2
結果3 = 31
結果4 = 30
結果5 = 2

2つの日付の差を求める方法は比較的簡単ですが、月数の差を求める場合は少し難易度があがります。参考までに以下ご覧ください。
Java 2つの日付の月数の差を求める

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