注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

HelloWorld

echo "Hello world !"

 
 
 

日志

 
 

日期段交集判断方法  

2014-07-23 17:10:24|  分类: 学习笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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

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

时间段b
开始b1
结束b2

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

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

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

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

 

 

日期段交集判断方法 - 北京妞儿 - 北京妞儿
  评论这张
 
阅读(149)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017