MENU

Java 日付・時刻の計算 加算・減算が簡単に

目次

Java 日付・時刻の計算 加算・減算が簡単に

 Java で簡単に日付・時刻の加算・減算を計算するサンプルプログラムを紹介します。
サンプルプログラムの特徴は以下となります。

  • 現在、または任意の日付・時刻から指定の時間量を加算・減算した結果を返します。
  • プラスの数値を指定した場合時間を進め、マイナスの場合は戻します。
    たとえば、現在の日付時刻から 10 日前を計算する場合は以下となります。
    Calendar cal = addMonth(-10);
  • 年、月、日、時間、分、秒、ミリ秒の各時間フィールドに対し、任意の時間量を設定できます。
    また、指定の時間から相対的に計算する場合は、引数にCalendarクラスを渡す。
    たとえば、以下では指定のCalendarインスタンスから1年進めることになります。
    Calendar cal = add(“指定のCalendar”,1,0,0,0,0,0,0);
  • 各時間フィールドの値がその範囲を超えた場合、次の大きい時間フィールドが増分または減分されます。
    たとえば、以下では現在時刻から1時間と5分進めることになります。
    Calendar cal = addMinute(65);


サンプルプログラム


実行

 サンプルプログラムでは、リターン値として計算後の日付を保持する java.util.Calendar オブジェクトを取得できますので、java.util.Calendar#getTime()メソッドにより、java.util.Dateに変換し java.text.SimpleDateFormat により日付文字列に変換しています。

◆実行例

public static void main(String[] args) {

SimpleDateFormat f = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println("現在   の日付・時刻 = "+ f.format(add(null,0,0,0,0,0,0,0).getTime()));
System.out.println("1年後  の日付・時刻 = "+ f.format(addYera(1).getTime()));
System.out.println("1ヶ月前 の日付・時刻 = "+ f.format(addMonth(-1).getTime()));
System.out.println("3時間後 の日付・時刻 = "+ f.format(addHour(3).getTime()));
System.out.println("30時間前の日付・時刻 = "+ f.format(addHour(-30).getTime()));
System.out.println("40分後 の日付・時刻 = "+ f.format(addMinute(40).getTime()));
System.out.println("80秒後 の日付・時刻 = "+ f.format(addSecond(80).getTime()));
System.out.println("1ヶ月前から、4日後の日付・時刻 = "+ f.format(add(null,0,-1,4,0,0,0,0).getTime()));

}

◆実行結果
現在の日付時刻は 2008/03/25 00:00:00 とします。

現在   の日付・時刻 = 2008/03/25 00:00:00
1年後  の日付・時刻 = 2009/03/25 00:00:00
1ヶ月前 の日付・時刻 = 2008/02/25 00:00:00
3時間後 の日付・時刻 = 2008/03/25 03:00:00
30時間前の日付・時刻 = 2008/03/23 18:00:00
40分後 の日付・時刻 = 2008/03/25 00:40:00
80秒後 の日付・時刻 = 2008/03/25 00:01:20
1ヶ月前から、4日後の日付・時刻 = 2008/02/29 00:00:00

※2008年は閏年のため2月の月末日付は29日となります。

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

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