当前位置: 首页 > news >正文

C# 判断时间段是否相交

1. 判断两个起止时间是否相交:

public static bool IsTimeBetween(TimeSpan input, TimeSpan start, TimeSpan end, bool fromInclusice, bool toInclusive)
        {
            //http://stackoverflow.com/questions/592248/how-can-i-check-if-the-current-time-is-between-in-a-time-frame
            // see if start comes before end
            if (end < start)
            {
                return
                    ((toInclusive && (input <= end)) || (!toInclusive && (input < end)))
                    ||
                    ((fromInclusice && (input >= start)) || (!fromInclusice && (input > start)));
            }
            else
            {
                return
                    ((fromInclusice && (input >= start)) || (!fromInclusice && (input > start)))
                    &&
                    ((toInclusive && (input <= end)) || (!toInclusive && (input < end)));
            }


        }


2. 传入起止时间的表达式,判断与已知时间段的交集,生成Mongo查询:

public IMongoQuery GetMongoQueryIntersectWith<TCollection>(
            Expression<Func<TCollection, DateTime>> fromExp, 
            Expression<Func<TCollection, DateTime>> toExp)
        {
            var rangeTo = Query.And(Query<TCollection>.GTE(toExp, To), Query<TCollection>.LTE(fromExp, To));
            var rangeFrom = Query.And(Query<TCollection>.GTE(toExp, From), Query<TCollection>.LTE(fromExp, From));

            var rangeQuery = Query.Or(rangeTo, rangeFrom, 
                Query.And(Query<TCollection>.GTE(fromExp, From),Query<TCollection>.LTE(toExp, To)));
            return rangeQuery;
        }

其中From和To为两个时间属性


相关文章:

  • lyo blog3D文章集锦
  • 使用c# Mongo Driver 完成嵌套查询
  • 过渡到SSAS之一:简单模型认识
  • 谈谈团队合作中的设计与优化
  • 页面元素的定位scrollintoview
  • C#将子线程附加在当前线程之后执行
  • 过渡到SSAS之二:服务的发布
  • MongoDb 中的PageFilter
  • 新浪换标,也许应该做点什么了
  • 使用joint.js 绘制图
  • myfaces与mojarra(JSF RI)处理空属性类型的不同
  • jsonp 示例
  • 平媒怎么了?
  • The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF
  • Neubla3中的骨骼动画: CoreAnimation子系统
  • 【comparator, comparable】小总结
  • 4. 路由到控制器 - Laravel从零开始教程
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • 77. Combinations
  • FineReport中如何实现自动滚屏效果
  • Java多态
  • js对象的深浅拷贝
  • Mybatis初体验
  • Mysql优化
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Shell编程
  • XML已死 ?
  • Yeoman_Bower_Grunt
  • yii2中session跨域名的问题
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 记一次和乔布斯合作最难忘的经历
  • 前嗅ForeSpider教程:创建模板
  • 少走弯路,给Java 1~5 年程序员的建议
  • 我看到的前端
  • 无服务器化是企业 IT 架构的未来吗?
  • 一文看透浏览器架构
  • 【干货分享】dos命令大全
  • 【云吞铺子】性能抖动剖析(二)
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​水经微图Web1.5.0版即将上线
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #Java第九次作业--输入输出流和文件操作
  • #QT(一种朴素的计算器实现方法)
  • (11)MATLAB PCA+SVM 人脸识别
  • (9)目标检测_SSD的原理
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (四)Controller接口控制器详解(三)
  • (已解决)报错:Could not load the Qt platform plugin “xcb“