Javaプログラムはクラスを使うと効率がアップします。日付の計算には、Calendarクラスを使うと便利。

問題 - Calendarクラス「難易度:低」

JavaではCalendarクラスを使うと日付データを扱うことができます。次のJavaプログラムはCalendarクラスから日付オブジェクトcalを生成し、2012年1月31日をセットしています(月は0~11の数値で指定するので、1月は「0」とセットします)。

Calendar cal = Calendar.getInstance();
cal.set(2012,0,31);

さらに、Calendarクラスのaddメソッドを使って、次のように月に1を加算しました。

cal.add(Calendar.MONTH, 1);

さて、日付オブジェクトcalをgetメソッドで取り出した年月日の出力はどのような結果になるでしょうか?

System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.MONTH));
System.out.println(cal.get(Calendar.DATE));

Javaプログラムはクラスを使うと効率がアップします。日付の計算には、Calendarクラスを使うと便利。

問題 - Calendarクラス「難易度:低」

JavaではCalendarクラスを使うと日付データを扱うことができます。次のJavaプログラムはCalendarクラスから日付オブジェクトcalを生成し、2012年1月31日をセットしています(月は0~11の数値で指定するので、1月は「0」とセットします)。

Calendar cal = Calendar.getInstance();
cal.set(2012,0,31);

さらに、Calendarクラスのaddメソッドを使って、次のように月に1を加算しました。

cal.add(Calendar.MONTH, 1);

さて、日付オブジェクトcalをgetメソッドで取り出した年月日の出力はどのような結果になるでしょうか?

System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.MONTH));
System.out.println(cal.get(Calendar.DATE));

解答

出力結果は2012年2月29日を示す結果となります。

2012
1
29

解説

Calendarクラスのaddメソッドは指定したフィールドの加減算を行うメソッドです。今回の場合は、2012年1月31日の月のフィールド「Calendar.MONTH」に1を加算しているので、2012年2月31日となりそうですが、そのような日付は存在しないため、Calendarクラスの中で2012年2月29日と補正されています。