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

js校验多个时间段的时间是否有交叉

参考博客:
Java日期时间API系列37-----时间段是否有重叠(交集)的计算方法
Java 最优雅方式校验时间段重叠

判断是否有交叉数据

       let timePeriod = [
        {
          start: dateList[0].value, //时间段1的开始时间 时间格式为1130(代表11:30)
          end: dateList[1].value,//时间段1的结束时间
        }{
          start: dateList[2].value, //时间段2的开始时间
          end: dateList[3].value,//时间段2的结束时间
        }{
          start: dateList[4].value, //时间段3的开始时间
          end: dateList[5].value,//时间段3的结束时间
        }{
          start: dateList[6].value, //时间段4的开始时间
          end: dateList[7].value,//时间段4的结束时间
        }{
          start: dateList[8].value, //时间段5的开始时间
          end: dateList[9].value,//时间段5的结束时间
        }{
          start: dateList[10].value, //时间段6的开始时间
          end: dateList[11].value,//时间段6的结束时间
        }]
        
        // 先按开始时间排序(需要保证开始时间小于结束时间)
        timePeriod.sort((a, b) => {
          return a.start - b.start
        })
        
        // 去除时间为空的时间段
        let timePeriodValue = timePeriod.filter(item => item.start != "") || []
        // 循环一遍,看有无交叉数据
        for (let i = 1; i < timePeriodValue.length; i++) {
          // !(timePeriodValue[i - 1].end < timePeriodValue[i].start) 时间段交叉(严格)
          // 如果1030与1030不算交叉 则!(timePeriodValue[i - 1].end <=timePeriodValue[i].start)  (非严格)
          if ( !timePeriodValue[i - 1].end < timePeriodValue[i].start ) {
            return callback(new Error("时间段不能交叉!")
          }
        }
http://www.dtcms.com/a/4956.html

相关文章:

  • OrangePi 5:ROS2 Humble中使用激光雷达
  • java:springboot3集成swagger(springdoc-openapi-starter-webmvc-ui)
  • WSL2 docker GUI 界面
  • Python与ArcGIS系列(十三)UpdateCursor方法
  • webWorker解决单线程中的一些小问题和性能优化
  • 【C++】string类的接口综合运用
  • 第四阶|自在行草 暄桐教室,林曦书法 从书法之美到生活之美
  • PHP TCP服务端监听端口接收客户端RFID网络读卡器上传的读卡数据
  • 关于前端的学习思考-父子盒子溢出问题
  • 视频字幕处理+AI绘画,Runway 全功能超详细使用教程(4)
  • Pandas进阶:文本处理
  • 王者荣耀java版
  • git rebase冲突说明(base\remote\local概念说明)
  • uni-app+vue3 封装全局函数(详细完整的方法)
  • SQL中left join、right join、inner join等的区别
  • 快速了解ChatGPT(大语言模型)
  • CentOS部署python Flask项目
  • 一文带你了解网络安全简史
  • 网络安全技术
  • AES加密技术:原理与应用
  • 使用策略模式彻底消除if-else
  • 记一次简单的PHP反序列化字符串溢出
  • gitlab高级功能之CI/CD组件 - 实践(二)
  • 二叉树刷题Leetcode
  • vscode中使用luaide-lite插件断点调试cocos2dx-lua
  • python程序内存泄漏的解决方法
  • flutter 自定义TabBar 【top 0 级别】
  • 【Android踩过的坑】13.Android Studio 运行成功,但APP没有安装上的问题
  • 项目中如何配置数据可视化展现
  • mysql多表重复数据只保留一行的思路