プロが教えるわが家の防犯対策術!

こんばんは。今GUIを作成しているのですが、
Jテキストフィールドに入力した年と月をもとに、その年のその月の日数分、日付と曜日をJラベルで表示させていたのですが、昨日までは問題なく動作していたのですが、いつの間にか2月の表示が31日まで表示されるようになっていました。4月はちゃんと30日まで表示されていました。原因がよくわからないので、以下のプログラムを作成し、今年の2月が何日あるか調べてみたのですが、出力結果は31でした。

import java.util.Calendar;

public class Cal{

public static void main(String[] args){

Calendar day=Calendar.getInstance();

day.set(Calendar.YEAR,2008);

day.set(Calendar.MONTH,1);

int niti=day.getActualMaximum(Calendar.DAY_OF_MONTH);

System.out.println(niti);
}
}

昨日まではこういったやり方で問題なくその年のその月の日数が出せたのですが、なにがおかしいのか原因がわかりません。どなたか悪い部分を教えてはいただけませんか。
こちらの環境ですが、windows vistaに、JavaSE6 Update4です。
よろしくおねがいします。

A 回答 (1件)

今日の日付が30日のためです。


年に2008年、月に2月を設定しているので
2008/2/30となり、2008/3/1と解釈されてしまいます。

よって、3月は31日まであるので「31」が出力されます。
    • good
    • 0
この回答へのお礼

ありがとうございます。まさにその通りでした。

お礼日時:2008/06/01 01:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!