我现在的方法是先算出相差的日期,
先把beginday换成Cal类
Calendar c = Calendar.getInstance();
然后在循环里用c.add(c.DAY_OF_MONTH,i)
在由
day=c.get(c.YEAR)+"-"............
变回来
不过由于条件限制还没有运行过 不知道这样回来的日期是不是对的
而且也想知道还有没有其他方法 我总觉得这样做好像不是最好方法

解决方案 »

  1.   


        public static String dateToStr(java.util.Date dt)
        {
            SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
            StringBuffer sb=new StringBuffer();
            sdf.format(dt,sb,new FieldPosition(0));
            return sb.toString();
        }
        public static java.util.Date StrToDate(String s) throws Exception
        {
            SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
            return  sdf.parse(s);
        }
      

  2.   

    请问yyyy-mm-dd这种格式的日期能比较大小吗?也就是时间的先后??
      

  3.   

    能比较去查相关的documentsSimpleDateFormat
      

  4.   

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    //字符串格式的日期beginday,endday
    Date begindate = sdf.parse(beginday);
    Date enddate = sdf.parse(endday);
    //yourdate是你自己要处理的日期;当这个日期>begindate,<enddate的时候,处理
    while(yourdate.after(begindate) && yourdate.before(enddate))
      //处理过程
      

  5.   

    Onega()和  fft123(专杀各类日本畜生)你们的方法是对指定的字符串或是Date类的来处理的
    但是我想问的是怎么得到这个字符串或是Date类的数据
    如beginday=2003-11-29 endday=2004-01-02   我怎么得到这2个日期之间的所有日期啊
    我想要的是这30多天的yyyy-mm-dd格式的日期2003-11-29,2003-11-30,2003-12-1,.......,2003-12-31,2004-01-01,2004-01-02.
      

  6.   

    肯定要用上循环语句, 怎么你们的语句里连个变量i之类的东西都没啊,要不怎么得到在变化中的日期呢.你们的方法都是处理固定的字符串或Date类的,如果我能得到那个,我想我用不着在这里花100分来问怎么转换把.
      

  7.   

    我以为你的beginday和endday之间的日期已经有了呢
    所以直接用while循环来做的
    没有的话要用Calendar类,调用add方法
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    //字符串格式的日期beginday,endday
    Date begindate = sdf.parse(beginday);
    Date enddate = sdf.parse(endday);
    Calendar c = Calendar.getInstance();
    c.setTime(begindate);//设置日期为起始日期begindate
    while(c.getTime().before(enddate))
    {
      c.add(c.DATE,1);//天数加一
      System.out.println(sf.format(c.getTime()));//输出yyyy-MM-dd格式的日期
      //其他处理
    }
      

  8.   

    while循环里是sdf.format,不是sf,写错了
      

  9.   

    嗯 要得就是这个 不过还没试过,等明天再说了 可以的话fft123给你95分了 另外一位没功劳也有苦劳,剩下的5分就给他吧,要不太打击他的积极性了  如果fft123你没意见的话等我通过了就这样给了啊.
      

  10.   

    你既然要把这些时间输入到数据库,那么你为什么不把这两个时间传给数据库,在数据库里面处理呢,数据库里面有专门的把某个日期加上天数得到一个新的日期的函数,这样一来你只要求出两个日期之间的天数(也有专门求两个日期之间天数的函数),用for循环来累加,就应该可以达到你的目的了.我查看了java文档里面,好像没有专门求两个日期之间天数,以及把某个日期加上一个天数得到一个新的日期的方法,所以交给数据库作是一个明智的选择.
      

  11.   

    楼主如果只要yyyy-MM-dd格式的日期,那我写的方法是没有问题的
    至于分的话楼主多给别人一点吧
    别人虽说没有写出来你要的答案,也算帮你写了一个思路
    其实分这东西是无所谓的,我觉得就是个形式问题to:楼上的
    java里是没有求2个日期天数差的函数
    但某个日期加上一个天数得到新日期的方法是有的,就是Calendar类的add方法,参数不同,加的天数(月、年)也都不同。交给数据库的话,如果将来移植,可能比较麻烦,不同数据库处理日期的函数也是不同的