1. 程式人生 > >通過startDate和endDate來獲取一段時間的日期集合

通過startDate和endDate來獲取一段時間的日期集合

前段在做網站首頁需要顯示很多資料報表,就是根據輸入的startDate和endDate來展示這段時間的資料;

思路:

1、把從Controller傳入的startDate、endDate通過SimpleDateFormatjiexie解析(String --> Date)為日期型別;

2、轉成long型的毫秒數,判斷異常

3、按時間升序,則將sDate賦值給Calendar子物件,降序反之

4、建立List,將eDate時間之前的時間一個個新增進去(格式化為String型別)

public static List<String> getPerDaysByStartAndEndDate(String startDate, String endDate) {
        DateFormat format = new SimpleDateFormat(PATTERN_YYYY_MM_DD);
        try {
            Date sDate = format.parse(startDate);
            Date eDate = format.parse(endDate);
            long start = sDate.getTime();                           //獲得毫秒數
            long end = eDate.getTime();                         
            if (start > end) {
                return null;
            }
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(sDate);                                //降序 setTime(eDate)
            List<String> res = new ArrayList<String>();
            while (end >= start) {
                res.add(format.format(calendar.getTime()));
                calendar.add(Calendar.DAY_OF_MONTH, 1);             //降序 add(Calender.DAY_OF_MONTH, -1)
                start = calendar.getTimeInMillis();                 //降序 end = calender.getTimeInMillis();
            }
            return res;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }