如何获得一个月的最后一天?

解决方案 »

  1.   

    苯办法:
    /**
         * @ 获取给定年月的最后日期
         * @param year
         * @param month
         * @return String
         */
        public static String pbfGetLastDate(String year,String month){
          if(year.length()==4||month.length()==2){
            try {
              if (Integer.parseInt(year) < 1900 || Integer.parseInt(month) < 0 ||
                  Integer.parseInt(month) > 12) {
                return "-1";
              }
              else {
                GregorianCalendar gcal = new GregorianCalendar(Integer.parseInt(
                    year),
                    Integer.parseInt(month), 0);
                int maxDayOfMonth = gcal.getActualMaximum(gcal.DAY_OF_MONTH);
                return year + month + String.valueOf(maxDayOfMonth);
              }
            }catch(Exception ex){
              return "-2";
            }
        }else {
              return "-1";
            }
        }
      

  2.   

    public static int haveDays(int year,int month)
        {
            int days = 0;        if ((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) || (month == 12))
            {
                days = 31;
            }
            else if ((month == 4) || (month == 6) || (month == 9) || (month == 11))
            {
                days = 30;
            }
            else if (month == 2)
            {
                if((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
                {
                    days = 29;
                }
                else 
                {
                    days = 28;
                }
            }
            return days;
        }
      

  3.   

    liukang520236:你的办法也太笨了,就跟我刚当程序员的时候一样,我这个办法怎么样:
     public static 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] );
     }