package com.xxx.xxx.xxx.code.controller; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; /** * 時間段工具類 */ public class DateUtils { //字符串轉日期的方法:convertString2Date public static Date convertString2Date(String format, String dateStr) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); try { Date date = simpleDateFormat.parse(dateStr); return date; } catch (ParseException e) { e.printStackTrace(); } return null; } //日期轉字符串的方法:convertDate2String public static String convertDate2String(String format, Date date) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); return simpleDateFormat.format(date); } /** * 獲取固定間隔時刻集合 * * @param start 開始時間 * @param end 結束時間 * @param interval 間隔時間 * @param rest 休息時間 * @return */ public static List<String> getIntervalTimeList(String start, String end, int interval, int rest) { //開始時間 Date startDate = DateUtils.convertString2Date("HH:mm", start); //結束時間 Date endDate = DateUtils.convertString2Date("HH:mm", end); List<String> list = new ArrayList<>(); int i = 0; //getTime()把時間轉化爲毫秒 如果開始時間小於結束時間 while (startDate.getTime() <= endDate.getTime()) { ++i; //就把startDate轉化爲String放入list 直到大於結束時間 String str = DateUtils.convertDate2String("HH:mm", startDate); list.add(str); Calendar calendar = Calendar.getInstance(); //getTime()把毫秒轉化爲時間 calendar.setTime(startDate); //傳入間隔時間 並且加上間隔時間 calendar.add(Calendar.MINUTE, interval); if (i == 2) { //getTime()把毫秒轉化爲時間 calendar.setTime(startDate); //傳入間隔時間 並且加上間隔時間 calendar.add(Calendar.MINUTE, rest); startDate = calendar.getTime(); i = 0; } else { startDate = calendar.getTime(); } //暫時用不到這些判斷 // if (calendar.getTime().getTime() > endDate.getTime()) { // if (!startDate.equals(endDate)) { // String string = DateUtils.convertDate2String("HH:mm", endDate); // list.add(string); // } // startDate = calendar.getTime(); // System.out.println("--" + startDate); // } else { // startDate = calendar.getTime(); // System.out.println("+++" + startDate); // } } return list; } public static void main(String[] args) throws ParseException { //開始、結束、間隔、休息 String str = "09:00"; String end = "18:00"; int interval = 60; int rest = 10; List<String> list = DateUtils.getIntervalTimeList(str, end, interval, rest); // for (String s : list) { // System.out.println(s); // } int j = 0; for (int i = 0; i < list.size(); i++) { // ++j; // if (j == 3) { // String s = list.get(i); // Date startDate = DateUtils.convertString2Date("HH:mm", s); // Date afterDate = new Date(startDate.getTime() + 600000 * 2); // //日期轉字符串 // String ss = DateUtils.convertDate2String("HH:mm", afterDate); // //System.out.println("時間------" + ss); // j = 0; // System.out.println("ss:" + ss); // } else { // String s = list.get(i); // System.out.println("s:" + s); // } } System.out.println(list); } }
在這個博主基礎之上新增的感謝https://blog.csdn.net/zhangzehai2234/article/details/51338338