Calendar calCurrent = Calendar.getInstance();
calCurrent.set(2007, 5, 31)
System.out.println(calCurrent.get(Calendar.DAY_OF_MONTH));输出怎么为6而不是5?
真奇怪这么简单的程序除了什么问题?

解决方案 »

  1.   

    上面贴错代码了,为啥不让我修改?
    我重来我:Calendar   calCurrent   =   Calendar.getInstance(); 
    calCurrent.set(2007,   5,   31) 
    System.out.println(calCurrent.get(Calendar.MONTH)); 输出怎么为6而不是5? 
    真奇怪这么简单的程序除了什么问题?
      

  2.   

    set
    public final void set(int year,
                          int month,
                          int date,
                          int hourOfDay,
                          int minute,
                          int second)设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。保留其他字段以前的值。如果不需要这样做,则先调用 clear()。 参数:
    year - 用来设置 YEAR 日历字段的值。
    month - 用来设置 MONTH 日历字段的值。Month 值是基于 0 的。例如,0 表示 January。
    date - 用来设置 DAY_OF_MONTH 日历字段的值。
    hourOfDay - 用来设置 HOUR_OF_DAY 日历字段的值。
    minute - 用来设置 MINUTE 日历字段的值。
    second - 用来设置 SECOND 日历字段的值。------------------------------------------------------------月份从0开始
      

  3.   

    月份从0开始
    calCurrent.set(2007,   5,   31) 
    实际设置是6月31号,6月最多30天,6月31号被解释为7月1号,获取MONTH返回6
      

  4.   

    结帖吧,建议楼主好好看看JDK API文档,免得浪费了100分,呵呵
      

  5.   

    calCurrent.set(2007,      4,       31)   表示2007-5-31
      

  6.   

    我有个毛病,编程几乎不看doc
    这个的确超越了我直觉的范围,没有想到会用0标识一月,有点bt。不过好歹问题解决了,谢谢各位!