GregorianCalendar gc = new GregorianCalendar();
int maxDay = gc.getActualMaximum(Calendar.MONTH);
maxDay 就是这个天数。

解决方案 »

  1.   

    int get_year=cal.get(cal.YEAR);
    int get_month=cal.get(cal.MONTH);
    int get_week=cal.get(cal.WEEK_OF_MONTH);
    int get_day=cal.get(cal.DAY_OF_MONTH); int maxDay = cal.getActualMaximum(x);当x为5时,也就是当前月,maxDay=30;但为其他数时,出来的值不对。
    x=4,maxDay=5!!!!why??
      

  2.   

    不太明白你说的 x = 4 以及 x = 5具体是什么意思,如果你指的是 cal.DAY_OF_MONTH的话,可能你对这个常数的意义产生了误解,这个常数实际返回的是当天是这个月的第几天,而不是一个月有多少天的意思。另外,引用这些常数其实不需要一个Calendar的实例存在,直接用类名Calendar引用就可以了,因为这些都是类常数。
      

  3.   

    不好意思,我的帖子没说清楚。
    怎样用GregorianCalendar类来得到指定月份有多少天? x是月份值,5就代表6月份,也就是cal.MONTH你说的类常数是不是针对当天的时间值而言的,如果我选择任意的一天,
    这个常数值的依据是什么呢?
      

  4.   

    不好意思,我的帖子没说清楚。
    怎样用GregorianCalendar类来得到指定月份有多少天? x是月份值,5就代表6月份,也就是cal.get(cal.MONTH);    你说的类常数是不是针对当天的时间值而言的,如果我选择任意的一天,
    这个常数值的依据是什么呢?
      

  5.   

    我说的类常数基本上是全局常数。:)因为它是用static final int来声明的,在任何地方都可以用Calendar.xxxxx这种方式直接引用而不需构造一个Calendar实例。建议认真地看看面象对象中static的用法。你选择任意一天的话,常数是不用变的,但是我的程序中第一句要变,
    GregorianCalendar gc = new GregorianCalendar(); // 这种构造函数gc获得的是当天
    改为:
    GregorianCalendar gc = new GregorianCalendar(xxxxx); // 其中构造的参数有五种,还是具体去看一看JDK文档吧。
    举一个简单的例子吧:
    GregorianCalendar gc = new GregorianCalendar(2001, 11, 3);
    这就是一个构造参数为(int, int, int)的GregorianCalendar,代表 2001-12-3,要注意月份是从0开算的。用这个方法就可以选择任意一天了。
      

  6.   

    还有请教一下:

    out.println("Calendar.MONTH="+Calendar.MONTH);的值是2,应该是5才对啊!怎么回事?
      

  7.   

    为什么是5???
    你大概是把 get(Calendar.MONTH) 与 Calendar.MONTH 搞混了吧!
    Calendar.MONTH之类的常数是用来作为 get的输入参数的,get的返回值才是你想要的!
      

  8.   

    弄了半天是Calendar.DAY_OF_MONTH
    :)
      

  9.   

    我的帖子是:怎样用GregorianCalendar类来得到指定月份有多少天!
    用参数Calendar.MONTH,得到的是11,也就是一年12个月。
    用参数Calendar.DAY_OF_MONTH,才是指定月份的天数。本月就为30