read the class Calendar and Date please..

解决方案 »

  1.   

    如果是同一年,则先得到起始日期的月份A,然后再得到终止日期的月份B,然后在A和B之间做一个for循环即可;
    如果不是同一年,则要考虑年份,思路还是一样的;比如2005/1/30到2005/3/2:得到1和3之后,从1开始循环到3,这样就可以得到1、2、3,共3个月份
      

  2.   

    import java.util.Calendar;
    public class TestCalender {
        public static void main(String[] args) {
            Calendar beginDate = Calendar.getInstance();
            beginDate.set(2004,1,29,0,0,0);
            System.out.println(beginDate.get(Calendar.MONTH));
            Calendar endDate = Calendar.getInstance();
            endDate.set(2005,3,2,0,0,0);
            int iCount = 0;
            int iMonth = 0;
            int iYear = 0;
            while(beginDate.getTimeInMillis() < endDate.getTimeInMillis()) {
                if(iYear != beginDate.get(Calendar.YEAR) || iMonth != (beginDate.get(Calendar.MONTH) - 1)) {
                    iCount++;
                    System.out.print("year==" + beginDate.get(Calendar.YEAR));
                    System.out.println(",and month==" + (beginDate.get(Calendar.MONTH) - 1));
                    iYear = beginDate.get(Calendar.YEAR);
                    iMonth = (beginDate.get(Calendar.MONTH) - 1);
                }
                beginDate.setTimeInMillis(beginDate.getTimeInMillis() + 1000 * 60 * 60 * 24);
            }
            System.out.println("total:" + iCount);
        }
    }
    好像有点问题,不愿调试了。