String str="2011-02-14";
        String str1="2011-02-25";
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
        Calendar start = Calendar.getInstance();
        Calendar end = Calendar.getInstance();
        try {
            start.setTime(format.parse(str));
            end.setTime(format.parse(str1));
        } catch (Exception e) {
            e.printStackTrace();
        }
        while(start.before(end)){
          ……
       }
  该怎么取到start和end相等的情况?

解决方案 »

  1.   

    try {
      start.setTime(format.parse(str));
      end.setTime(format.parse(str1));
    }
    这条语句你就将start和end分别设置了时间,2011-02-14和2011-02-25,若你不setTime,那么就是默认的当前时间Now。
    你想两个时间相等,String str="2011-02-14"; String str1="2011-02-25";这样坑定不行,都写死了。
     
      

  2.   

    start.getTimeInMillis()  end.getTimeInMillis() 两个一比较就OK了。
      

  3.   


    给你个例子 看是不是你想要的import java.util.Calendar;
    import java.util.Date;
    public class test { /**
     * @param args
     */
    public static void main(String[] args) {
    Date date=new Date(2011,2,21);
    Date date1=new Date(2011,2,22);
    Date date2;
    int i=-1;
    while(date.before(date1)){
        i--;
        date1=addDay(date1,i);
     System.out.println(date1.getDate());
    }
          
    //}
     }

    // 增加或减少几天
    public static Date addDay(Date date, int num) {
       Calendar startDT = Calendar.getInstance();
       startDT.setTime(date);
       startDT.add(Calendar.DATE, num);
       return startDT.getTime(); }
    }
      

  4.   

    忘了说那两个时间是用参数传进来的
    现在已经解决了,在循环外面对end加一天就可以了!
    非常感谢各位!
      

  5.   

    其实你可以直接比较两个字符串的,你想时间大的字符串也是大的,你想下看是不是这样,如果真想用Calendar的方法的,可以使用Calendar的比较方法