请问高手们一个相对简单问题,我想用JAVA代码,取出两个日期之间所有的日期,怎样写代码
例如 日期的最小值是 2008-12-01
    日期值最大值是  2008-12-05
    我要取2008-12-01 到2008-12-05 之间的日期,即2008-12-01、2008-12-02、2008-12-03、2008-12-04、2008-12-05
请问用java要怎么写

解决方案 »

  1.   

    是查询数据库嘛?写sql语句就好了 比如:select * from table where time between '2008-12-01' and '2008-12-05'
      

  2.   

    用SQL不是更方便么?先用SQL得到```再提取字符串?
      

  3.   


        public static List twoDays(String str1,String str2){
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            List list = new ArrayList();
           try {
                Date b=df.parse(str1);
                Date e=df.parse(str2);
                Calendar c=Calendar.getInstance();
                c.setTime(b);
                while (e.compareTo(c.getTime())>=0){
                      String tempDateStr = "";
                      tempDateStr = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()).toString() + "," +new SimpleDateFormat("E").format(c.getTime());
                      System.out.println(tempDateStr);
                      list.add(tempDateStr);
                      c.add(c.DATE, 1);
                }
            } catch (ParseException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            return list;
        }
      

  4.   

    明白你的意思了
    这是你要的代码:
    import java.util.Calendar; 
    import java.util.GregorianCalendar; public class CalendarTest { 
    public static void main(String[] args) 

    GregorianCalendar day1 = new GregorianCalendar(2008, Calendar.DECEMBER, 01); 
    GregorianCalendar day2 = new GregorianCalendar(2008, Calendar.DECEMBER, 05); while(day2.after(day1)){ 
    day1.add(Calendar.DATE,1); 
    System.out.println(String.valueOf(day1.get(Calendar.YEAR)) + "-" + String.valueOf(day1.get(Calendar.MONTH)+1) + "-" + String.valueOf(day1.get(Calendar.DAY_OF_MONTH))); 



      

  5.   

    答:参考代码:import java.util.*;
    import java.text.*;
    public class TestDate { //取2008-12-01 到2008-12-05 之间的日期
    //,即2008-12-01、2008-12-02、2008-12-03、2008-12-04、2008-12-05 
    public static GregorianCalendar[]  getDate(String d1,String d2) throws ParseException
    {
    Vector<GregorianCalendar> v=new Vector<GregorianCalendar>();
    SimpleDateFormat  sdf=new SimpleDateFormat("yyyy-MM-dd");
    GregorianCalendar gc1=new GregorianCalendar(),gc2=new GregorianCalendar();
    gc1.setTime(sdf.parse(d1));
    gc2.setTime(sdf.parse(d2));
    do{
    GregorianCalendar gc3=(GregorianCalendar)gc1.clone();
         v.add(gc3);
         gc1.add(Calendar.DAY_OF_MONTH, 1);       
         }while(!gc1.after(gc2));
    return v.toArray(new GregorianCalendar[v.size()]);
    }

    public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub
    GregorianCalendar[] ga=getDate("2008-12-29", "2009-1-5");
    for(GregorianCalendar e:ga)
    {
    System.out.println(e.get(Calendar.YEAR)+"年 "+
               +(e.get(Calendar.MONTH)+1)+"月 "+
               e.get(Calendar.DAY_OF_MONTH)+"号");
    }
    }}
    程序运行结果:
    2008年 12月 29号
    2008年 12月 30号
    2008年 12月 31号
    2009年 1月 1号
    2009年 1月 2号
    2009年 1月 3号
    2009年 1月 4号
    2009年 1月 5号
      

  6.   

    在SQL语句中 用Datediff函数来跨越两个日期