Javaで日時を加算/減算する
Javaで日時を加算/減算するには、Calendarクラスのaddメソッドを利用する。
addメソッド
1 | public abstract void add(int field, int amount) |
カレンダーの規則に基づいて、指定された時間量を指定されたカレンダーフィールドに加算または減算する。
例えば、カレンダーの現在時刻から 5 日を引く場合は、次の呼び出しを実行する。
1 | add(Calendar.DAY_OF_MONTH, -5) |
【パラメータ】
field:カレンダーフィールド
amount:フィールドに追加される日付または時刻の量
尚、日を1ずつ増加させていき、その月の最後の日になりさらに追加すると月が1増加され日は1に戻る。
ただし、注意する点としては日が31日などの場合に月を1だけ増加させた場合、増加後の月が30日までしか無い場合などは日も30に変更される。
その後に31日まである月になったとしても日は30日のままとなる。
サンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import java.util.Calendar; class testCalendar{ public static void main(String args[]){ Calendar calendar = Calendar.getInstance(); System.out.println("日時を2005/12/30に設定する"); calendar.set(2005, 11, 30); dispCalendar(calendar); System.out.println("-- -- -- -- -- --"); System.out.println("日を1ずつ増加させる"); for (int i = 0 ; i < 6 ; i++){ calendar.add(Calendar.DAY_OF_MONTH, 1); dispCalendar(calendar); } System.out.println("-- -- -- -- -- --"); System.out.println("日時を2006/1/31に設定する"); calendar.set(2006, 0, 31); dispCalendar(calendar); System.out.println("-- -- -- -- -- --"); System.out.println("月を1ずつ増加させる"); for (int i = 0 ; i < 4 ; i++){ calendar.add(Calendar.MONTH, 1); dispCalendar(calendar); } } private static void dispCalendar(Calendar calendar){ int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DATE); StringBuffer sb = new StringBuffer(); sb.append("設定されている日時は"); sb.append(year + "年" + month + "月" + day + "日"); System.out.println(new String(sb)); } } |