调用腾讯DescribeStreamPlayInfoList按天分割

感谢https://www.cnblogs.com/Steven5007/p/12723683.html得代码参考改动如下



@Data
public class DateRange {

    private Date begin; //开始时间

    private Date end; //结束时间

    //只是为了方便查看,实际开发中不要这个鬼
    public String toString() {
        return "{" + new SimpleDateFormat(RoomConst.DATE_TIME).format(begin) + " ," + new SimpleDateFormat(RoomConst.DATE_TIME).format(end) + "}";
    }
}


public class DayUtil {
    private DayUtil() {

    }

    public static void main(String[] a) {
        Object o = splitDateRangeByDay("2020-06-09 16:00:00", "2020-06-11 12:00:00");
        System.out.println(JSON.toJSONString(o));
    }

    /**
     * @param b
     * @param e
     * @return
     */
    public static List<DateRange> splitDateRangeByDay(String b, String e) {
        Date begin = DateUtil.parse(b, RoomConst.DATE_TIME);
        Date end = DateUtil.parse(e, RoomConst.DATE_TIME);
        String sb = b.substring(0, 10);
        String se = e.substring(0, 10);
        //一天内得
        if (sb.equals(se)) {
            DateRange r = new DateRange();
            r.setBegin(begin);
            r.setEnd(end);
            return Lists.newArrayList(r);
        }
        long time = end.getTime() - begin.getTime();
        long hours = time / (60 * 60 * 1000);
        if (time % (60 * 60 * 1000) > 0) {
            hours += 1;
        }
        //隔天但是小于24小时
        if (hours <= 24) {
            List<DateRange> result = new ArrayList<>(2);
            DateRange r = new DateRange();
            r.setBegin(begin);
            r.setEnd(DateUtil.parse(sb + " 23:59:59", RoomConst.DATE_TIME));
            result.add(r);
            DateRange r2 = new DateRange();
            r2.setBegin(DateUtil.parse(se + " 00:00:00", RoomConst.DATE_TIME));
            r2.setEnd(end);
            result.add(r2);
            return result;
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(begin);
        List<DateRange> list = Lists.newArrayList();
        DateRange range = new DateRange();
        range.setBegin(begin);
        while (true) {
            calendar.add(Calendar.DAY_OF_YEAR, 1);
            if (calendar.getTime().after(end)) {
                range.setEnd(end);
                list.add(range);
                break;
            }
            calendar.set(Calendar.HOUR_OF_DAY, 0);
            calendar.set(Calendar.MINUTE, 0);
            calendar.set(Calendar.SECOND, 0);
            calendar.set(Calendar.MILLISECOND, 0);
            //今天的开始
            Date tmpBeginTime = calendar.getTime();
            //计算出上一天的最后一秒
            calendar.add(Calendar.SECOND, -1);
            range.setEnd(calendar.getTime());
            list.add(range);
            //创建新的时间段
            range = new DateRange();
            range.setBegin(tmpBeginTime);
            //回到今天
            calendar.add(Calendar.SECOND, +1);
        }
        return list;
    }

}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值