首页 > 编程语言 >检测重叠时间段的算法 [重复]

检测重叠时间段的算法 [重复]

时间:2023-11-15 13:01:41浏览次数:35  
标签:重叠 tEndB 算法 时间段 tStartB && tEndA

内容来自 DOC https://q.houxu6.top/?s=检测重叠时间段的算法 [重复]

我需要检测两个时间段是否重叠。

每个时间段都有一个开始日期和结束日期。

我需要检测我的第一个时间段(A)是否与另一个时间段(B/C)重叠。

在我的情况下,如果B的开始等于A的结束,则它们不重叠(反之亦然)。

我发现了以下情况:

enter image description here

所以我现在做法如下:

tStartA < tStartB && tStartB < tEndA //对于情况1
OR
tStartA < tEndB && tEndB <= tEndA //对于情况2
OR
tStartB < tStartA  && tEndB > tEndA //对于情况3

(情况4在情况1或情况2中考虑)

有效,但似乎不是非常高效。

因此,首先在C#中是否有一个现有的类可以建模(即具有固定开始日期的时间段),类似TimeSpan?

其次,是否已经有C#代码(例如DateTime类)可以处理这种情况?

第三,如果没有,你会采取什么方法使这种比较最快?


判断两个时间段是否重叠的简单方法:

bool overlap = a.start < b.end && b.start < a.end;

或者在你的代码中:

bool overlap = tStartA < tEndB && tStartB < tEndA;

(如果你改变主意,想说两个时间段只要相互接触就重叠了,请使用 <=

标签:重叠,tEndB,算法,时间段,tStartB,&&,tEndA
From: https://www.cnblogs.com/xiaomandujia/p/17833579.html

相关文章

  • cryptography hash 算法使用
    安装pipinstallcryptography使用方法fromcryptography.hazmat.primitivesimporthashesdigest=hashes.Hash(hashes.SHA256())#digest=hashes.Hash(hashes.SHA3_256())#digest=hashes.Hash(hashes.SM3())digest.update(b"abc")print(digest.finalize())......
  • 负载均衡算法
    转载:负载均衡算法居然有这么多种!!!负载均衡算法总结_负载均衡算法有哪些_抓手的博客-CSDN博客负载均衡算法可以分为两类:静态负载均衡算法和动态负载均衡算法,另外还可以自定义负载均衡算法。静态负载均衡算法1、轮询(RoundRobin):服务器按照顺序循环接受请求。2、随机(Random):随机选择......
  • 基于深度学习网络的人员吸烟行为检测算法matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本matlab2022a 3.算法理论概述        基于FasterR-CNN深度学习网络的人员吸烟行为检测算法是一种利用深度学习技术进行人员吸烟行为检测的方法。该算法主要基于FasterR-CNN网络结构,通过对视频或图像序列中的人员......
  • 基于深度学习网络的火灾检测算法matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本matlab2022a 3.算法理论概述       火灾检测在许多领域都是一项重要的任务,包括建筑、森林、甚至是太空。近年来,深度学习网络在图像识别和分类上的应用取得了显著的进步,这使得基于深度学习的火灾检测算法变得越来......
  • dfs回溯算法,拨号
    题目电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字母。示例1:输入:digits="23"输出:["ad","ae","af","bd","be","bf","cd","ce",......
  • 数据分享|WEKA关联规则挖掘Apriori算法在学生就业数据中的应用
    全文链接:https://tecdat.cn/?p=34254原文出处:拓端数据部落公众号关联规则挖掘作为数据挖掘的一个重要分支,对于发现数据之间的潜在关联和规律具有重要意义。在教育领域,学生就业数据是一类重要的数据资源,通过关联规则挖掘可以揭示学生就业相关的规律和影响因素。本文旨在探讨WEKA......
  • kmp算法
    2023-11-14作用:从一个字符串中找到另一个字符串的位置思路:    暴力匹配-》主串的指针一直往前走,不后退-》匹配串的指针回退的位置变小-》根据前缀表 求前缀表(匹配串的所有前缀的最长公共前后缀长度表):/求前缀表int[]next=newint[needle.length()];......
  • 树 算法题(一)
    1、计算二叉树中所有结点个数intCntNode(BiTreeT){intk=0;if(T){k++;k+=CntNode(T->lchild);k+=CntNode(T->rchild);}returnk;}2、计算二叉树中所有叶子节点的个数intLeafNode(BiTreeT){intk=0;if(T){......
  • 【算法基础】贪心算法 LeetCode 135. 分发糖果
    分发糖果题目介绍n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。测试用......
  • 文心一言 VS 讯飞星火 VS chatgpt (135)-- 算法导论11.3 1题
    一、用go语言,假设我们希望查找一个长度为n的链表,其中每一个元素都包含一个关键字k并具有散列值h(k)。每一个关键字都是长字符串。那么在表中查找具有给定关键字的元素时,如何利用各元素的散列值呢?文心一言:在Go语言中,你可以通过使用一个哈希表来存储关键字的散列值,并在查找具有给......