zoukankan      html  css  js  c++  java
  • 日期段交集判断方法(转)

    今天和同事讨论一个时间段交集的问题。同事列了两个时间段,然后把发生交集的情况列了出来,一看有四五种情况,如果放到程序里去做的话,为了得到这个交集那需要多少IF-ELSE啊!看到这些就回忆起几年前我也遇到同样的问题,当时我也是使用了同样的方法,把可能发生交集的情况一一列了出来,然后在程序里做判断,后来一位老员工看到我那堆IF-ELSE后表示很惊讶,他说“其实这个判断很简单”,然后给我出了下面这个表达式

    ------------------------------------------------------
    时间段a
    开始a1
    结束a2

    时间段b
    开始b1
    结束b2

    时间段a与时间段b的交集出现在 a2>b1 && a1<b2 的时候
    ------------------------------------------------------

    看了一眼我还不怎么相信,把各种情况往这个表达式里套,结果是正确的。这个表达式就像一辆攻城车,一下就把我用IF-ELSE堆起来的城墙给推到了。

    后来我仔细考虑考虑了一下,为啥这么简单就能判断出是否有交集,而不需要在意四五六七八个可能出现交集的情况。后来我明白了,这个表达式不是判断是否有交集,而是判断是否没交集。原来道理如此简单,可能这就是所谓的逆向思维吧。

    在网上搜了一下,很多帖子都介绍了自己的交集算法,我看了都不是那么好,有些还有漏洞,所以把这个例子发给大家参考一下。

  • 相关阅读:
    mysql小结
    微信小程序中使用iconfont图标
    微信小程序添加底部自定义导航栏(tabBar)
    微信小程序实现简单计算器
    使用koa2做一个简单的图片上传web
    Promise 对象
    css常用的布局属性
    微信小程序知识点总结(持续更新中)
    Cannot read property 'data' of undefined;at api showModal success callback function
    Asp.net Core WebApi使用Swagger
  • 原文地址:https://www.cnblogs.com/weijieyun/p/6073062.html
Copyright © 2011-2022 走看看