質問

こんにちは私はグレゴリアンカレンダーに問題があります。

そこに何が悪いのですか?

2010/6/1ではなく2010/6/1ではどのように結果がありますか?

package test;

import java.util.Calendar;
import java.util.GregorianCalendar;

public class Main {

    public static void main(String[] args) {
        Calendar cal = new GregorianCalendar(2010, 5, 31);
        System.out.println(cal.get(Calendar.YEAR) + "/" + cal.get(Calendar.MONTH) + "/" + cal.get(Calendar.DAY_OF_MONTH));
    }

}
役に立ちましたか?

解決

Javaは0から数ヶ月をカウントするので、5は6月です。定数を使用する方が常に安全です。だから私は書くだろう:

Calendar cal = new GregorianCalendar(2010, Calendar.MAY, 31);

同じことがカレンダーの印刷にも当てはまります。もし、するなら cal.get(Calendar.MONTH) 7月の意味は6つあります。

他のヒント

これは、月数がゼロベースであるため、6月31日を設定しようとしているためですが、6月はわずか30日であるため、7月1日に変換されます。

6月には31日目がないので、上記の答えが次の有効な日に宣伝されているので、 calendar.setlenient デフォルトでは真です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top