一个起始日期beginDate 一个结束日期 endDate 需要一个函数,接收这两个参数,输出他们之间所有月份的第一天至最后一天比如: 
beginDate = 2006-08-13 
endDate = 2006-11-10则最后的结果应该是
        2006-08-13 至 2006-08-31
        2006-09-01 至 2006-09-30
        2006-10-01 至 2006-10-31
        2006-11-01 至 2006-11-10要注意月份的大小,和跨年度的情况。求此问题的解。谢谢

解决方案 »

  1.   

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");beginDate = sdf.parse("2006-08-13");
    endDate = sdf.parse("2006-11-10");for(Date tempDate = new Date(beginDate.getTime());tempDate.before(endDate);tempDate.setDate(tempDate.getDate()+1)){
        System.out.println(sdf.format(tempDate));
    }
      

  2.   

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");beginDate = sdf.parse("2006-08-13");
    endDate = sdf.parse("2006-11-10");for(Date tempDate = new Date(beginDate.getTime());tempDate.before(endDate);tempDate.setDate(tempDate.getDate()+1)){
        System.out.println(sdf.format(tempDate));
    }
    正解
      

  3.   

    100分居然没有要 我要了SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date beginDate = sdf.parse("2006-08-13");
    Date endDate = sdf.parse("2006-08-31");
    System.out.print(sdf.format(beginDate)+" to ");for (Date tempDate = new Date(beginDate.getTime()); tempDate.before(endDate); tempDate.setDate(tempDate.getDate() + 1)) {
    if (tempDate.getDate() == 1) {
    Date d = new Date(tempDate.getTime());
    d.setDate(tempDate.getDate() - 1);
    System.out.println(sdf.format(d));
    System.out.print(sdf.format(tempDate)+" to ");
    }}System.out.print(sdf.format(endDate));接分