Calendar start = new GregorianCalendar(2004, Jan, 1); 
Calendar end = new GregorianCalendar(); for(;;) {
  System.out.print(start.获得日期字符串格式);
  start.add(天,1);
  if(start.equals(end))
     break;
}上述代码纯示意性。自己改正

解决方案 »

  1.   

    class OutputDate{
    public static void main(String[] args){
    Date today=new Date();
    Date printday=new Date();
    printday.setYear(104);
    printday.setMonth(0);
    printday.setDate(1);
    for(int n=1;printday.before(today);n++){
    System.out.println(""+(printday.getYear()+1900)+"-"+(printday.getMonth()+1)+"-"+printday.getDate());
    printday.setDate(printday.getDate()+1);
    if(printday.getMonth()==12){
    printday.setMonth(0);
    printday.setYear(printday.getYear()-1);
    }
    }
    System.out.println(""+(today.getYear()+1900)+"-"+(today.getMonth()+1)+"-"+today.getDate());
    }
    }上面的程序是我用的老版本JDK的方法写的,如果要改成楼上的写法还是你自己改吧
      

  2.   

    晕!~~~~~还没改完就发出去了,上面的for(int n=1;printday.before(today);n++)中的参数n可以不要,没什么用的,可以改成for(;printday.before(today);)
      

  3.   

    同意eclipse0016,具体代码中
    start.add(Calendar.DATE,1);
      

  4.   

    import java.util.*;
    import java.text.*;class  CalendarTest
    {
    public static void main(String[] args) throws Exception 
    {
    DateFormat format=new SimpleDateFormat("yyyy-MM-dd");
    Date begin=format.parse("2004-1-1");
    Date now=new Date();
    Calendar c1=Calendar.getInstance();
    Calendar c2=Calendar.getInstance();
    c1.setTime(begin);
    c2.setTime(now);
    while(c1.before(c2)){
    System.out.println(format.format(c1.getTime()));
    c1.add(Calendar.DAY_OF_YEAR,1);
    } }
    }
      

  5.   

    我上面的那一段还缺一个导入语句import java.util.*;
      

  6.   

    用 毫秒的long型构造即可,步进 24*3600*1000,至于两头的时间,用 Date(year,month,day)构造一下再getTime()就是long型的。。然后算出间隔天数,就可以循环了。。
      

  7.   

    我自己写的一个工具类。稍微改一下就可以了
    import java.sql.*;
    import java.text.*;
    import java.util.*;
    import java.util.Date;
    public class TimeHelper
    {  /**
       * 将原时间加参数天,返回时间。返回时间格式:0返回date,1返回datetime
       * @param beginTime String
       * @param dayAmount int
       * @param returnFormat int
       * @return String
       */
      public static String addDays(String beginTime, int dayAmount, int returnFormat)
      {
        try
        {
          if (beginTime == null)
          {
            return null;
          }
          DateFormat df;
          if (returnFormat == 0)
          {
            df = DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.SIMPLIFIED_CHINESE);
          }
          else if (returnFormat == 1)
          {
            df = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.SIMPLIFIED_CHINESE);
          }
          else
          {
            return null;
          }
          Date _beginTime = df.parse(beginTime);
          GregorianCalendar gc_beginTime = new GregorianCalendar(Locale.SIMPLIFIED_CHINESE);
          gc_beginTime.setTime(_beginTime);
          gc_beginTime.add(GregorianCalendar.DATE, dayAmount);
          String result = df.format(gc_beginTime.getTime());
          return result;
        }
        catch (ParseException ex)
        {
          ex.printStackTrace();
          return null;
        }
      }
      /**
       * 得到相隔的时间天数
       * @param beginTime String
       * @param endTime String
       * @return int
       */
      public static Integer getDays(String beginTime, String endTime)
      {
        try
        {
          if (beginTime == null || endTime == null)
          {
            return null;
          }
          DateFormat df = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.SIMPLIFIED_CHINESE);
          Date _beginTime = df.parse(beginTime);
          Date _endTime = df.parse(endTime);
          GregorianCalendar gc_beginTime = new GregorianCalendar(Locale.SIMPLIFIED_CHINESE);
          GregorianCalendar gc_endTime = new GregorianCalendar(Locale.SIMPLIFIED_CHINESE);
          gc_beginTime.setTime(_beginTime);
          gc_endTime.setTime(_endTime);
          int result = getDays(new GregorianCalendar(gc_beginTime.get(gc_beginTime.YEAR), gc_beginTime.get(gc_beginTime.MONTH), gc_beginTime.get(gc_beginTime.DAY_OF_MONTH), gc_beginTime.get(gc_beginTime.HOUR_OF_DAY), gc_beginTime.get(gc_beginTime.MINUTE), gc_beginTime.get(gc_beginTime.SECOND)), new GregorianCalendar(gc_endTime.get(gc_endTime.YEAR), gc_endTime.get(gc_endTime.MONTH), gc_endTime.get(gc_endTime.DAY_OF_MONTH), gc_endTime.get(gc_endTime.HOUR_OF_DAY), gc_endTime.get(gc_endTime.MINUTE), gc_endTime.get(gc_endTime.SECOND)));
          return new Integer(result);
        }
        catch (ParseException ex)
        {
          ex.printStackTrace();
          return null;
        }
      }  /**
       * 得到相隔的时间天数
       * @param g1 GregorianCalendar
       * @param g2 GregorianCalendar
       * @return int
       */
      private static int getDays(GregorianCalendar g1, GregorianCalendar g2)
      {
        int elapsed = 0;
        GregorianCalendar gc1, gc2;    if (g2.after(g1))
        {
          gc2 = (GregorianCalendar) g2.clone();
          gc1 = (GregorianCalendar) g1.clone();
        }
        else
        {
          gc2 = (GregorianCalendar) g1.clone();
          gc1 = (GregorianCalendar) g2.clone();
        }    gc1.clear(Calendar.MILLISECOND);
        gc1.clear(Calendar.SECOND);
        gc1.clear(Calendar.MINUTE);
        gc1.clear(Calendar.HOUR_OF_DAY);    gc2.clear(Calendar.MILLISECOND);
        gc2.clear(Calendar.SECOND);
        gc2.clear(Calendar.MINUTE);
        gc2.clear(Calendar.HOUR_OF_DAY);    while (gc1.before(gc2))
        {
          gc1.add(Calendar.DATE, 1);
          elapsed++;
        }
        return elapsed;
      }  public static void main(String[] args)
      {
        Integer days = getDays("2004-01-01 0:0:0", "2005-01-18 0:0:0");
        String day = "2004-01-01 0:0:0";
        for (int i = 0; i < days.intValue(); i++)
        {
          day = addDays(day,1,0);
          System.out.println(day);
        }
      }
    }