Java で日時を加算・減算するには、Calendar クラスの add メソッドを使用します。
メソッド | 戻り値 | 説明 |
add(int, int) |
void |
指定のフィールドに対して数量を加算・減算します。 |
add メソッドは元となる Calendar オブジェクトが持っている日時に対して、任意の数量を加算します。第一引数にフィールド(年、月、日、時、分、秒など)を指定し、第二引数に数量を指定することで、元となる Calendar オブジェクトの値を直接変更します。数量をプラスで指定した場合は加算となり、マイナスで指定した場合は減算となります。
【サンプルコード】
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class sample {
public static void main (String[] args) {
// Calendarオブジェクトを生成します
Calendar cal1 = Calendar.getInstance();
// 表示用フォーマットを設定します
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
// 計算の元となる日時を毎回「2014/10/20 10:20:30」に設定します
// 年に「1」をaddして年を加算します
cal1.set(2014, 9, 20, 10, 20, 30);
cal1.add(Calendar.YEAR, 1);
System.out.println(sdf1.format(cal1.getTime()));
// 月に「-2」をaddして月を減算します
cal1.set(2014, 9, 20, 10, 20, 30);
cal1.add(Calendar.MONTH, -2);
System.out.println(sdf1.format(cal1.getTime()));
// 日に「3」をaddして日を加算します
cal1.set(2014, 9, 20, 10, 20, 30);
cal1.add(Calendar.DATE, 3);
System.out.println(sdf1.format(cal1.getTime()));
// 時に「-4」をaddして時間を減算します
cal1.set(2014, 9, 20, 10, 20, 30);
cal1.add(Calendar.HOUR, -4);
System.out.println(sdf1.format(cal1.getTime()));
// 分に「5」をaddして分を加算します
cal1.set(2014, 9, 20, 10, 20, 30);
cal1.add(Calendar.MINUTE, 5);
System.out.println(sdf1.format(cal1.getTime()));
// 秒に「-6」をaddして秒を減算します
cal1.set(2014, 9, 20, 10, 20, 30);
cal1.add(Calendar.SECOND, -6);
System.out.println(sdf1.format(cal1.getTime()));
}
}
【実行結果】
2015/10/20 10:20:30
2014/08/20 10:20:30
2014/10/23 10:20:30
2014/10/20 06:20:30
2014/10/20 10:25:30
2014/10/20 10:20:24