以下代码段返回:
28
31
Run Code Online (Sandbox Code Playgroud)
我想不通,为什么。我尝试通过两种方式将日历对象设置为 2021 年 2 月,我做错了什么?月份是从零开始的,所以二月是“1”。
import java.util.Calendar;
import java.util.GregorianCalendar;
public class HelloWorld{
public static void main(String []args){
Calendar g = new GregorianCalendar(2021, 1, 28);
System.out.println(g.getActualMaximum(Calendar.DAY_OF_MONTH));
int year = 2021;
int month = 1;
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
System.out.println(c.getActualMaximum(Calendar.DAY_OF_MONTH));
}
}
Run Code Online (Sandbox Code Playgroud)
或者这只会发生,因为我在 3 月 29、30 或 31 日调用 Calendar.getInstance() 而我没有调用
c.set(Calendar.DAY_OF_MONTH, {any day below 29});
Run Code Online (Sandbox Code Playgroud)