日期:2014-05-20  浏览次数:20689 次

java 如何求得两个日期中的每一天?
两个日期 2008-10-01 , 2010-10-01 

求它们中间的每一天的日期 ,如 

2008-10-01
2008-10-02
2008-10-03
...
..
2010-10-01 

如何做啊?


------解决方案--------------------
使用Calender类做日期加法,例子:
Calendar cal=Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_MONTH,1);
date=cal.getTime();
循环即可得到所有日期。
------解决方案--------------------
Java code
Date date0 = new SimpleDateFormat("yyyy-MM-dd").parse("2008-10-01");
Date date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2010-10-01");
Calendar cal = Calendar.getInstance();
cal.setTime(date0);
while(cal.getTime().compareTo(date1)<=0){
  //...
  cal.add(Calendar.DAY_OF_MONTH,1);
}

------解决方案--------------------
Java code
SimpleDateFormat   myFormatter   =   new   SimpleDateFormat("yyyy-MM-dd");  
java.util.Date   date=   myFormatter.parse("2010-10-01");    
java.util.Date   mydate=   myFormatter.parse("2008-10-01");  

long day=(date.getTime()-mydate.getTime())/(24*60*60*1000); 
 
System.out.println("相差的日期:"   +   day);

------解决方案--------------------
Java code
import java.util.*;
import java.text.*;

public class DisplayDateEveryday {
    public static void main(String args[]){
        
        display("2008-08-08", "2008-08-24");
        
    }
    
    public static void display(String dateFirst, String dateSecond){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        
        try{
            Date dateOne = dateFormat.parse(dateFirst);
            Date dateTwo = dateFormat.parse(dateSecond);
            
            Calendar calendar = Calendar.getInstance();
            
            calendar.setTime(dateOne);
            
            while(calendar.getTime().before(dateTwo)){                
                System.out.println(dateFormat.format(calendar.getTime()));
                
                calendar.add(Calendar.DAY_OF_MONTH, 1);                
            }
        }
        catch(Exception e){
            e.printStackTrace();
        }
        
    }
}