• Android 比较两个时间段是否有交集或重复


    先看一个例图:

    在金山《电池管家》应用中就有一个类似上图这样的功能—— 开启多个定时任务。

    当开启另一个定时任务的时候,如果即将开启的这个定时任务的时间段与已经开启了的定时任务的时间段有交集的话,它就会提示:重叠的任务不可同时启动!

    下面我就把这个任务重叠(判断两个时间段是否有重叠)已经写好的一套算法进行封装成了一个工具类的代码贴出来,注释也写在代码中了,相信大家很容易可以理解。

    /**
     * 比较两个时间段是否有交集工具类
     * @author qiulong
     * 
     */
    public class TimeCheckUtil {
    
        /**
         * 比较两个时间段数组是否有重合
         * @author qiulong
         * @param timeArray1
         * @param timeArray2
         * @return 有重合 true;
         */
        public static boolean compare(ArrayList<Integer> timeArray1,
                ArrayList<Integer> timeArray2) {
            for (int i : timeArray1) {
                if (timeArray2.contains(i))
                    return true;
            }
            return false;
        }
    
        /**
         * 将时间段转换成数组
         * @author qiulong
         * @param ent
         * @return
         */
        public static ArrayList<Integer> checkList(TimingEntity ent) {
            // 先将时间转换成分来计算
            int timeStart = (ent.getStartHour() * 60) + ent.getStartMinute();
            int timeEnd = (ent.getEndHour() * 60) + ent.getEndMinute();
            // 将时间段封装成一个数组
            ArrayList<Integer> timeArray = new ArrayList<Integer>();
            if (timeEnd > timeStart) {// 开始时间小于结束时间
                for (int i = timeStart; i <= timeEnd; i++) {
                    timeArray.add(i);// 添加开始时间至结束时间为止的时间
                }
            } else {// 开始时间大于结束时间
                for (int i = timeStart; i < 24 * 60; i++) {
                    timeArray.add(i);// 添加开始时间至当天0点以前的剩余时间
                }
                for (int i = 0; i <= timeEnd; i++) {
                    timeArray.add(i);// 添加0点以后到结束时间为止的时间
                }
            }
            return timeArray;
        }
    
    }
  • 相关阅读:
    Getting Started with Recovery Manager (RMAN) (文档 ID 360416.1)
    enctype的2个值
    laravel 去掉资源的顶层包裹 withoutWrapping方法
    hash_equals(),防止时序攻击,字符串比较函数
    moment.js 处理“几天前”,“几个月前”
    redis hash 应用场景
    vue 3个插槽示例(具名插槽)
    vue 插槽的基本使用
    redis hash
    redis 分布式系统全局序列号
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/5973719.html
Copyright © 2020-2023  润新知