1. 程式人生 > >Java中傳入一個時間段,取出該時間段內所有日期的集合

Java中傳入一個時間段,取出該時間段內所有日期的集合

package com.yhsb.assisData.controller;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;


public class ceshi {

    public static void main(String[] args) throws ParseException {

        findDates("2018-10-01","2018-10-25");

    }

    public static List<String> findDates(String dBegin, String dEnd) throws ParseException {
        //日期工具類準備
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");

        //設定開始時間
        Calendar calBegin = Calendar.getInstance();
        calBegin.setTime(format.parse(dBegin));

        //設定結束時間
        Calendar calEnd = Calendar.getInstance();
        calEnd.setTime(format.parse(dEnd));

        //裝返回的日期集合容器
        List<String> Datelist = new ArrayList<String>();

        // 每次迴圈給calBegin日期加一天,直到calBegin.getTime()時間等於dEnd
        while (format.parse(dEnd).after(calBegin.getTime()))  {
            // 根據日曆的規則,為給定的日曆欄位新增或減去指定的時間量
            calBegin.add(Calendar.DAY_OF_MONTH, 1);
            Datelist.add(format.format(calBegin.getTime()));
        }

        //列印結果 [2018-10-01, 2018-10-02, 2018-10-03, 2018-10-04, 2018-10-05, 2018-10-06, 2018-10-07, 2018-10-08, 2018-10-09, 2018-10-10, 2018-10-11, 2018-10-12, 2018-10-13, 2018-10-14, 2018-10-15, 2018-10-16, 2018-10-17, 2018-10-18, 2018-10-19, 2018-10-20, 2018-10-21, 2018-10-22, 2018-10-23, 2018-10-24, 2018-10-25]
        System.out.println(Datelist);
        return Datelist;
    }

}