随机取一个日期,用JAVA如何算出这个日期所在月的最后一天?在线急等,谢了!

解决方案 »

  1.   

    suppose your random date is targetDate;Calendar cal = Claendar.newInstance();
    cal.setTime(targetDate);
    int maxDate = cal.getMaximum(Calendar.DATE);
    cal.set(Calendar.DATE, maxDate);Date resultDate = cal.getTime();
      

  2.   

    用getMaximum()就可以求出每月最后一天吗?
      

  3.   

    一楼写得不太对。getMaximum是取得最大值,传递的参数是想要得到的单位。DAY_OF_MONTH
    可以得到最大天数,也可以得到最大周数等等。
    WEEK_OF_MONTH ,WEEK_OF_YEAR,HOUR_OF_DAY,DAY_OF_YEAR等等.....得到当月最大天数是getMaximum(Calendar.DAY_OF_MONTH);
    得到当年最大天数是getMaximum(Calendar.DAY_OF_YEAR);
    得到当月最大周数是getMaximum(Calendar.WEEK_OF_MONTH);依此类推....参照
    http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html
      

  4.   

    chubbchubb(长街) 说的很对,一楼的不太正确,大概就是那样了,结贴吧,呵呵
      

  5.   

    public Date getStartOfMonth(){
        int year,month,day;
        year = date.getYear();
        month = date.getMonth();
        day = 1;
        Date d = new Date(year,month,1);
        return d;
      }  public Date getEndOfMonth(){
        int year,month,day;
        year = date.getYear();
        month = date.getMonth()+1;
        day =1;
        if(month >11){
          year++;
          month=0;
        }
        Date d =  new Date(year,month,1);
        d.setDate(d.getDate()-1);
        return d;
      }我写的一个类的成名函数,其中的date里指某月中的随便哪一天
      

  6.   

    如果当月是2月份,怎么得到的getMaximum(Calendar.DAY_OF_MONTH) 仍然是31天呢?奇怪
      

  7.   

    唉!! 查了一下! 不用这么麻烦!!直接用cal.getActualMaximum(Calendar.DAY_OF_MONTH) 就可以拉!!呵呵