JAVA中Calendar类getActualMaximum()方法的使用

2025-01-07 08:05:17
推荐回答(2个)
回答1:

你查一下API Calendar的getActualMaximum(int field)他传入的是一个int类型,这个方法的具体意思就是说根据你传入的参数代表的意思(年、月、周等)查询当前(年、月、周)拥有的最大值。
如果是年就查询这一年中的天数,如果月份就查询当前月中的天数,如果是周就查询当前周的天数
这个int类型在Calendar中是一个常量定义的,他们分别是
public static final int ERA = 0;
public static final int YEAR = 1;
public static final int MONTH = 2;
public static final int WEEK_OF_YEAR = 3;
public static final int WEEK_OF_MONTH = 4;
public static final int DATE = 5;
public static final int DAY_OF_MONTH = 5;
public static final int DAY_OF_YEAR = 6;
public static final int DAY_OF_WEEK = 7;
你可以看到5就是DATE,所以给方法传入Calendar.DATE和5的时候返回的值是一样的。

set(Calendar.DATE,1)这种写法是什么意思,是改变DATE的值么?
这个并不是说改变DATE本身的值,他是final类型的 你说可以改变么?
这个意思是说把日历日期设置为当前月的第一天,如果你的日历日期是2013-07-11的话 那么当你set(Calendar.DATE,1)之后日历日期就变成了2013-07-01,顺便跟你说一声日历日期也就是你c.set()这个方法设置的;一般是传一个Date对象进去。

回答2:

calendar的field字段(比如DATE YEAR等),这些字段是static int类型的,貌似类里面的属性。
可以通过set,get设置。
public final void set(int field,int value):将日历对象的给定字段field设定为指定值value;
field可以有以下取值:Calender.YEAR,Calendar.MONTH,Calendar.DATE, Calendar.HOUR, Calendar.MINUTE,Calendar.SECOND
public int get(int field):获取当前日历对象指定字段的值

意义:一般,为了方便获取某个字段,比如,使用calendar.DATE_OD_MONTH,看字面意思就知道是日期(一个月的某天).但是,如果,是某个数字,还要去查该数字对应的字段含义,这就不方便了。