Java 計算兩個日期之間有哪些日期

有時候我們會遇到這樣的需求:比如在2015-12-12 至 2016-01-22號之間有哪些日期呢?其實很簡單 ,我們做報表的時候有可能會用到,根據用戶選擇的時間段,顯示該時間段的具體數據。
下面直接看代碼 , 下面代碼可以直接複製粘貼使用。

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

/**
 * 
 * @author ZSL
 * @DESC 計算兩個日期之間有哪些日期
 */

public class DateUtil {
    public static List getDays(String beginTime,String endTime){
        DateFormat FORMATTER = new SimpleDateFormat("yyyy-MM-dd");  
        List<Date> list=null;  
        try{  
            Calendar startDay = Calendar.getInstance();  
            Calendar endDay = Calendar.getInstance();  
            startDay.setTime(FORMATTER.parse(beginTime));  
            endDay.setTime(FORMATTER.parse(endTime));  
            // 給出的日期開始日比終了日大則不執行打印  
            list=new ArrayList<Date>();  
            Date s1=new Date();  
            s1.setDay(beginTime);  
            list.add(s1);  
            if(!beginTime.equals(endTime)){  
                if(startDay.compareTo(endDay)<=0){  
                    //現在打印中的日期  
                    Calendar currentPrintDay = startDay;  
                    while (true){  
                        Date s=new Date();  
                        // 日期加一  
                        currentPrintDay.add(Calendar.DATE, 1);  
                        // 日期加一後判斷是否達到終了日,達到則終止打印  
                        if (currentPrintDay.compareTo(endDay) == 0) {  
                            break;  
                        }  
                        s.setDay(FORMATTER.format(currentPrintDay.getTime()));  
                        list.add(s);  
                    }  
                    Date s2=new Date();  
                    s2.setDay(endTime);  
                    list.add(s2);  
                }  
            }  
        }catch (Exception e){  
            e.printStackTrace();  
        }
        return list; 
    }

    public static void main(String[] args) {
            List<Date> list = getDays("2015-12-12", "2016-01-22");
            for (Date date : list) {
                System.out.println(date.getDay());
            }
    }
}

class Date{
    private String day;

    public String getDay() {
        return day;
    }

    public void setDay(String day) {
        this.day = day;
    }
}


這裏寫圖片描述


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章