欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 实现一个vue js小算法 选择不同的时间段 不交叉

实现一个vue js小算法 选择不同的时间段 不交叉

2024/10/24 23:25:50 来源:https://blog.csdn.net/lele66688888/article/details/139630615  浏览:    关键词:实现一个vue js小算法 选择不同的时间段 不交叉

以上图片选择了时间段 现在需要判断 当前选择的时间段 不能够是 有交叉的所以现在需要循环判断

//判断时间段是否重叠交叉
export function areIntervalsNonOverlapping(intervals:any) {// 辅助函数:将时间字符串转换为从当天午夜开始计算的分钟数function convertToMinutes(timeString:any) {const [hours, minutes, seconds] = timeString.split(':').map(Number)return hours * 60 + minutes // 忽略秒数,如果需要更高精度可以加上 seconds}// 转换时间并排序const sortedIntervals = intervals.map(interval => ({...interval,beginMinutes: convertToMinutes(interval.polishBeginTime),endMinutes: convertToMinutes(interval.polishEndTime),})).sort((a, b) => a.beginMinutes - b.beginMinutes)// 检查重叠for (let i = 1; i < sortedIntervals.length; i++) {const current = sortedIntervals[i]const previous = sortedIntervals[i - 1]// 处理跨越午夜的情况if (current.beginMinutes < previous.endMinutes ||(current.beginMinutes === 0 && previous.endMinutes > 23 * 60)) {return false // 重叠}}return true // 没有重叠
}

以上就是这个算法 

传入数组 就可以

我的数组格式 是 

[
{
//判断时间段是否重叠交叉
polishBeginTime:"01:00:00"
polishEndTime:"02:00:00"}]

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com