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早就定义好的,也就是客观从在的事实,重新设定有什么意义 
希望高手指点,谢谢

解决方案 »

  1.   

    1.为什么要重新设置,因为用了ca.clear(); 这样ca里面就空了,所有所有的数据才需要重新设置。
    2.你可以这样测试下get()方法去的数据。
    GregorianCalendar calendar=new GregorianCalendar(); 
    System.out.println(calendar);
    System.out.println(calendar.get(i));
      

  2.   

    同意楼上的.
    另外,可以查一下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);
    这样比较直观.