LoginSignup
0
0

More than 3 years have passed since last update.

JavaのCalendarクラスを使った月末日の取得で少し詰まったこと

Posted at

やりたかったこと

JavaのCalendarクラスを使って月末日を取得する際2月31日を入力されたら28日に自動変換するプログラムを組んだ。が、2月を指定しているのに31日が出力されていました。

Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR,2019);
cal.set(Calendar.MONTH,2);

cal.getActualMaximum(Calendar.DATE);//結果は31

原因

原因はCalendarクラスは0を1月として扱う為2を指定した場合3月として扱われていたのが原因でした。

Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR,2019);
cal.set(Calendar.MONTH,1);//2月

cal.getActualMaximum(Calendar.DATE)//結果は28

なぜ1を1月として扱わないのでしょう…同じ目に合ってる方の為にメモしておきました

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0