家居网站建设,模板网站优,室内设计软件推荐,东莞优秀网站建设参考博客#xff1a; Java日期时间API系列37-----时间段是否有重叠#xff08;交集#xff09;的计算方法 Java 最优雅方式校验时间段重叠
判断是否有交叉数据 let timePeriod [{start: dateList[0].value, //时间段1的开始时间 时间格式为1130#xff08;代表11#xf…参考博客 Java日期时间API系列37-----时间段是否有重叠交集的计算方法 Java 最优雅方式校验时间段重叠
判断是否有交叉数据 let timePeriod [{start: dateList[0].value, //时间段1的开始时间 时间格式为1130代表1130end: 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(时间段不能交叉)}}