zoukankan      html  css  js  c++  java
  • 如何判断两个时间段是否有重叠部分

    分别用 startDate1,endDate1 和 startDate2,endDate2 表示两段时间
    如果考虑写出两个时间段重叠的每种情况的话,会比较多,写出的判断也比较长,可以反过来考虑如果判断两段时间不重叠的情况。
    考虑一段时间不动,另一段时间不重叠的话,另一段时间只能在不动的时间段的一前一后。

    这里假设不动的蓝色块时间段为 startDate2,endDate2 
    很容易写出不重叠的判断:
    endDate1 < startDate2 || endDate2 < startDate1
    这时再取反就为重叠的条件
    !(endDate1 < startDate2 || endDate2 < startDate1)
    即为:
    endDate1 >= startDate2 && endDate2 >= startDate1
    
    

    这里可以用 PHP 封装成方法,因为PHP可以直接比较时间大小所以不用转成时间戳比较了。

    当然传进来的时间参数需要是正确的时间格式。

    function isOverlap($startDate1, $endDate1, $startDate2, $endDate2)
    {
        return $endDate1 >= $startDate2 && $startDate1 <= $endDate2;
    }
     
  • 相关阅读:
    Java文档注释
    Java程序基本框架
    Java文件手动编译执行步骤
    JDK安装中配置Path无效解决办法
    JDK安装配置
    Java简单介绍运行机制
    python代码注释
    python从hello world开始
    python,pycharm,anaconda之间的区别与联系
    python环境配置
  • 原文地址:https://www.cnblogs.com/caiawo/p/14445852.html
Copyright © 2011-2022 走看看