首页 > 其他分享 >用chatgpt ui 实现 对于时间段集合中的每个时间段,检查它是否与要检查的时间段重叠或者有交叉。

用chatgpt ui 实现 对于时间段集合中的每个时间段,检查它是否与要检查的时间段重叠或者有交叉。

时间:2023-05-10 17:13:51浏览次数:50  
标签:StartDate 重叠 检查 dateRange 交叉 ui 时间段 existingRange

以下是一个C#实现,用于确定一个时间段是否与另一个时间段集合重叠或交叉,如果有重叠或交叉则返回false。

算法:

传递要检查的时间段和时间段集合作为参数。

对于时间段集合中的每个时间段,检查它是否与要检查的时间段重叠或者有交叉。

如果有重叠或交叉,则返回false表示它们不应该重叠或交叉,否则返回true。

代码实现:

public bool IsValidDateRange(DateRange dateRange, List<DateRange> existingRanges){
    foreach(var existingRange in existingRanges){
        //check if the start date or end date of dateRange falls in the existingRange
        if((dateRange.StartDate >= existingRange.StartDate && dateRange.StartDate <= existingRange.EndDate) ||
            (dateRange.EndDate >= existingRange.StartDate && dateRange.EndDate <= existingRange.EndDate)){
            return false;
        }
        //check if the existingRange falls in the dateRange
        if((existingRange.StartDate >= dateRange.StartDate && existingRange.StartDate <= dateRange.EndDate) || 
            (existingRange.EndDate >= dateRange.StartDate && existingRange.EndDate <= dateRange.EndDate)){
            return false;
        }
    }
    return true;
}

public class DateRange {
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
}
这个算法的时间复杂度取决于时间段集合的大小。

 

标签:StartDate,重叠,检查,dateRange,交叉,ui,时间段,existingRange
From: https://www.cnblogs.com/zuochanzi/p/17388512.html

相关文章

  • 【备忘】go build 使用代理解决部分模块或依赖无法下载的问题
    1、查看go版本goversion2、如果版本为1.13及以上goenv-wGO111MODULE=ongoenv-wGOPROXY=https://goproxy.io,direct低于1.13版本$env:GO111MODULE="on"$env:GOPROXY="https://goproxy.io"......
  • BurpSuit配置浏览器代理 chrome
    1、BurpSuit配置默认代理 2、添加谷歌插件switchyomega,修改服务器和端口 打开代理,选择刚才添加的代理 3、访问http://burp/,获取证书 4、将证书添加到Chrome浏览器 5、访问任意网址,发现可以抓到包包啦~ ......
  • elementui plus - 下载组件库vue包,本地启动
    1.背景这个地址https://element-plus.gitee.io/zh-CN/经常打不开所以,可以去git仓库获取工程源码【虽然已经打包过的】2.解决仓库地址https://gitee.com/element-plus/doc-archive.git克隆到本地后,找到index文件夹,启动临时工程 3.效果 ......
  • 快速访问element-ui
    第一步:点击下方前往“站长工具”查询对应网址youzan.github.io的DNS站长工具地址 第二步:找到TTL值最小的那个的ip地址和我们需要的网址对应关系,配置到hosts文件中win10hosts文件默认路径:C:\Windows\System32\drivers\etc此处点击文件、打开Windowspowershell以管理员身份打......
  • jquery ui dialog 遮拦 select的解决方法
    <scripttype="text/javascript"src="/js/jquery.bgiframe.min.js"></script>  1.    引用以上JS代码。 注意:jquery与jquery.bgiframe插件的对应版本  2.    JS代码加入红色部分         $("#dialog-editor").dialog({ bgiframe:true, ......
  • 抖音 用户id转uid
    本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!用户id转uid环境win10Python3.9PyQt5效果抖音id转sec_uiddefget_sec_uid(self,un_id):header......
  • element ui 动态下拉框定位
    先触发动态生成代码#po封装btn_pre_out=(By.XPATH,'/html/body/div/div/div[1]/div[3]/div/span')btn_out=(By.XPATH,'/html/body/ul/li')self.click(*self.btn_pre_out)ele=WebDriverWait(self.driver,10).until(lambda_:self.driver......
  • 建造者模式(Builder Pattern)
    模式动机建造者模式(BuilderPattern)是最复杂的创建型模式,它用于创建一个包含多个组成部分的复杂对象,可以返回一个完整的产品对象给用户。它通过将客户端与包含多个组成部分的复杂对象的创建过程分离,使得客户端无需知道复杂对象的内部组成部分与装配方式,只需要知道建造者的类型......
  • Building wheel for opencv-python (pyproject.toml) ,安装命令增加 --verbose 参数
    Mac安装paddlehub出现Buildingwheelsforcollectedpackages:opencv-python,ffmpy,jieba,seqeval,futureBuildingwheelforopencv-python(pyproject.toml)...解决方法pipinstallopencv-python-ihttps://pypi.tuna.tsinghua.edu.cn/simple--verbose......
  • element-ui上传组件,before-upload发送异步请求 + Promise
    element-ui上传组件,before-upload发送异步请求+Promisebefore-upload为false的时候会阻止图片的上传但是和chenge事情一起不行可以:http-request="fnUploadRequest"<el-upload--snip--:before-upload="beforeAvatarUpload"--snip--......