Calendar ca = Calendar.getInstance();
ca.clear();
ca.set(2007, 0, 1); //指定為2007年度的第一天
ca.setFirstDayOfWeek(ca.get(7)); //指定該天為星期幾
ca.setMinimalDaysInFirstWeek((8 - ca.get(7))); //指定當年最短一週有幾天 问题:
1:
其中ca.get(7)是什么意思,我试了一下ca.get(0)到ca.get(16)都有不同的值,一旦ca.get(17)马上就有异常产生,能否解释一下此方法不同参数的含义; 2:
还有对setFirstDayOfWeek方法,设定某一周的第一天,很奇怪,为什么要设定某一周第一天呢,对于日历来说某一周的某一天是星期几都是固定的,重新设定有什么作用,很困惑 3:setMinimalDaysInFirstWeek指定當年最短一週有幾天,我觉得更没必要了,某一年的哪一周最短是日历Calendar早就定义好的,也就是客观从在的事实,重新设定有什么意义
希望高手指点,谢谢
ca.clear();
ca.set(2007, 0, 1); //指定為2007年度的第一天
ca.setFirstDayOfWeek(ca.get(7)); //指定該天為星期幾
ca.setMinimalDaysInFirstWeek((8 - ca.get(7))); //指定當年最短一週有幾天 问题:
1:
其中ca.get(7)是什么意思,我试了一下ca.get(0)到ca.get(16)都有不同的值,一旦ca.get(17)马上就有异常产生,能否解释一下此方法不同参数的含义; 2:
还有对setFirstDayOfWeek方法,设定某一周的第一天,很奇怪,为什么要设定某一周第一天呢,对于日历来说某一周的某一天是星期几都是固定的,重新设定有什么作用,很困惑 3:setMinimalDaysInFirstWeek指定當年最短一週有幾天,我觉得更没必要了,某一年的哪一周最短是日历Calendar早就定义好的,也就是客观从在的事实,重新设定有什么意义
希望高手指点,谢谢
2.你可以这样测试下get()方法去的数据。
GregorianCalendar calendar=new GregorianCalendar();
System.out.println(calendar);
System.out.println(calendar.get(i));
另外,可以查一下JDK的源码,其中列出了field的值.public final static int ERA = 0;
public final static int YEAR = 1;
public final static int MONTH = 2;
public final static int WEEK_OF_YEAR = 3;
public final static int WEEK_OF_MONTH = 4;
public final static int DATE = 5;
public final static int DAY_OF_MONTH = 5;
public final static int DAY_OF_YEAR = 6;
public final static int DAY_OF_WEEK = 7;
public final static int DAY_OF_WEEK_IN_MONTH = 8;
public final static int AM_PM = 9;
public final static int HOUR = 10;
public final static int HOUR_OF_DAY = 11;
public final static int MINUTE = 12;
public final static int SECOND = 13;
public final static int MILLISECOND = 14;
public final static int ZONE_OFFSET = 15;
public final static int DST_OFFSET = 16;
public final static int FIELD_COUNT = 17;代码一般还是写成
Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
这样比较直观.