JAVA中如何取当前月的最大天数?如1月份是31天,2月是28天,3月是30天

解决方案 »

  1.   

    这个我不知;
    但是我有个很麻烦主意:就是用Java连接Oracle,然后查询Oralce的日期函数,
    就能返回了!
      

  2.   

    取两个相邻月的天数不就完了,例如:2月1日减去1月1日,最好是在SQL语句中实现,建议写成存储过程
      

  3.   

    用日期类  设传入年份为N 及月份为M , NEW 一个日期的实例 年份为N 月为M+1 日为1
    在 ADDDAY -1, 得到DAY OF MONTH 即可
      

  4.   

    Calendar calendar = Calendar.getInstance();
    calendar.set(calendar.get(Calendar.YEAR),
            calendar.get(Calendar.MONTH),
            1);
    calendar.roll(Calendar.DATE, false);
    System.out.println(calendar.get(Calendar.DATE));
      

  5.   

    public int showDaysOfMonth( int year, int month ) 
        {
            int days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
            if( 2 == month && 0 == (year % 4) && ( 0 != (year % 100) || 0 == (year % 400) ) ) {//判断?年,当 month = 2 ?才判断,以?少?算量
                days[1] = 29;
            }
            return( days[month -1] );
        }
      

  6.   

    public int showDaysOfMonth( int year, int month ) 
        {
            int days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
            if( 2 == month && 0 == (year % 4) && ( 0 != (year % 100) || 0 == (year % 400) ) ) {
                days[1] = 29;
            }
            return( days[month -1] );
        }
    这个方法简单通用,有需要的朋友拿去用好了
      

  7.   

    Calendar c = Calendar.getInstance();
    int d = c.getActualMaximum(Calendar.DAY_OF_MONTH)
      

  8.   

    java.util.calendar
    有这个方法getActualMaximum()
      

  9.   

    chuan122345() 的办法真强啊,我也写了一个类似的算法。没这么精练
      

  10.   

    当前年月实际的总天数:
    =====================
    Calendar cal = new GregorianCalendar();int year_days  = cal.getActualMaximum(Calendar.DAY_OF_YEAR );
    int month_days = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
    可能出现的最大天数:
    ===================int month_days = cal.getMaximum(Calendar.DAY_OF_MONTH);
    // 这种方式不随当前日期的影响,如果取 2 月份,总是的到 29
    在给 Calendar 指定月份时要注意:
    ===============================Java 中的月份,0 - 表示1月份, .....  11 - 表示12月份,不要搞错了哟
    保险的方式是,使用常量:Calendar.JANUARY ...
      

  11.   

    大家可以参考一下Borland中VCL的写法:
    以下是伪码:public int isLeapYear(int year){
    判断闰年,如果是闰年则返回1,否则返回0
    }public int getMonthDay(int year,int month){  int[] month_day = {{31,28,31,40,31,30,31,31,30,31,30,31},
                         {31,28,31,40,31,30,31,31,30,31,30,31}};  return month_day[isLeapYear(year)][month-1];}
      

  12.   

    上例中
    int[] month_day = {{31,28,31,40,31,30,31,31,30,31,30,31},
                         {31,29,31,40,31,30,31,31,30,31,30,31}};
      

  13.   

    int month_days = cal.getMaximum(Calendar.DAY_OF_MONTH);
    可以.
      

  14.   

    刚才忘记cal的定义了Calendar cal=new GregorianCalendar();