zoukankan      html  css  js  c++  java
  • 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;
        }
    
    }
  • 相关阅读:
    QT 信号与槽 中传递自定义数据类型
    keil5 仿真时发现函数不能进入到main函数
    QT 报错分析 一
    QT 简易时间处理
    QT 编译出现 Custom Executable 对话框 问题
    win10 下装ubuntu双系统
    Vmware linux下不能联网
    Vmware Workstation
    免费在线作图,实时协作
    SVN常用问题汇总
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/5973719.html
Copyright © 2011-2022 走看看