java 获取当天间隔15分钟时间集合

package com.xny.base.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
 * @author wuqs
 * @version 1.0.0
 * @ClassName GetDailyTime.java
 * @Description 生成每天时分,例如 00:00,00:15,00:30,23:45
 * @createTime 2021年11月29日 15:58:00
 */
public class GetDailyTime {

	public static List<String> minuteList(){
		Date date = new Date();
		List<Date> ds = test(date);
		List<String> list = new ArrayList<>();
		SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
		for (Date d : ds) {
			list.add(sdf.format(d));
		}
		return list;
	}
	public static void main(String[] args) {
//		Date date = new Date();
//		List<Date> ds = test(date);
//
//		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		for (Date d : ds) {
//			System.out.println(sdf.format(d));
//		}
		System.out.println(minuteList());
	}

	public static List<String> findDates(String stime, String etime)
			throws ParseException {
		List<String> allDate = new ArrayList();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

		Date dBegin = sdf.parse(stime);
		Date dEnd = sdf.parse(etime);
		allDate.add(sdf.format(dBegin));
		Calendar calBegin = Calendar.getInstance();
		// 使用给定的 Date 设置此 Calendar 的时间
		calBegin.setTime(dBegin);
		Calendar calEnd = Calendar.getInstance();
		// 使用给定的 Date 设置此 Calendar 的时间
		calEnd.setTime(dEnd);
		// 测试此日期是否在指定日期之后
		while (dEnd.after(calBegin.getTime())) {
			// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
			calBegin.add(Calendar.DAY_OF_MONTH, 1);
			allDate.add(sdf.format(calBegin.getTime()));
		}
		return allDate;
	}
	
	static List<Date> test(Date date) {
		Date start = dayStartDate(date);//转换为天的起始date
		Date nextDayDate = nextDay(start);//下一天的date
		
		List<Date> result = new ArrayList<Date>();
		while (start.compareTo(nextDayDate) < 0) {
			result.add(start);
			//日期加5分钟
			start = addFiveMin(start, 15);
		}
		
		return result;
	}
 
	private static Date addFiveMin(Date start, int offset) {
		Calendar c = Calendar.getInstance();
		c.setTime(start);
		c.add(Calendar.MINUTE, offset);
		return c.getTime();
	}
 
	private static Date nextDay(Date start) {
		Calendar c = Calendar.getInstance();
		c.setTime(start);
		c.add(Calendar.DATE, 1);
		return c.getTime();
	}
 
	private static Date dayStartDate(Date date) {
		Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.HOUR_OF_DAY, 0);
        c.set(Calendar.MINUTE, 0);
        c.set(Calendar.SECOND, 0);
        c.set(Calendar.MILLISECOND, 0);
		return c.getTime();
	}
/**
 * @author wuqs
 * @version 1.0.0
 * @Description 获取i分钟后的时间
 * @createTime 2021年11月29日 15:58:00
 */
    public static String getMinute(int i) {
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        Calendar nowTime2 = Calendar.getInstance();
        nowTime2.add(Calendar.MINUTE, i * 15);
        return sdf.format(nowTime2.getTime());
    }
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值