思路:選擇一段時間段,以開始時間追加10天(單位)輸出日期;時間段不足10天,只選擇開始時間;到結束時間不足10天,選擇最後距離10天的時間。
package com.jeeplus.modules.vikingTest;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
/**
*任務拆分測試 按照指定時間間隔執行
*/
public class ComplexCaculateTask{
public static void main(String[] args) throws ParseException {
findDates("2020-04-01","2020-05-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>();
Datelist.add(format.format(calBegin.getTime()));
// 每次循環給calBegin日期加一天,直到calBegin.getTime()時間等於dEnd
while (format.parse(dEnd).after(calBegin.getTime())) {
// 根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量
calBegin.add(Calendar.DAY_OF_MONTH, 10);
String format1 = format.format(calBegin.getTime());
if (calBegin.getTime().getTime()>calEnd.getTime().getTime()){
break;
}
Datelist.add(format1);
}
System.out.println(Datelist);
return Datelist;
}
}