我有一个文本框,用来询问每天有多少匹配的时间表可用。在此基础上,我需要得到整个计划的开始时间和结束时间。
如果用户可以输入3个时间表,那么我需要三个3开始时间和结束时间。这是很好的工作,但问题是我需要避免冲突的时间。
例如
这些是我需要避免的冲突,谁来帮帮我吧。
我试了一下这个示例单击按钮,结果显示:
http://jsbin.com/lixig/8/edit
发布于 2014-03-18 10:26:02
您可以使用下面的函数来确定两个数值范围是否重叠。它接受表单[start, end]的两个数组。
function rangesOverlap(range1, range2) {
return range1[1] > range2[0] && range2[1] > range1[0];
}假设您有一个范围数组,以确定没有一个重叠:
function noneOverlap(ranges) {
var untestedRanges = ranges.slice();
return ranges.every(function(range1) {
untestedRanges.shift();
return untestedRanges.every(function(range2) {
return ! rangesOverlap(range1, range2);
});
});
}例如:
noneOverlap([[0,1],[0,2]]) // => false
noneOverlap([[0,1],[2,3]]) // => truehttps://stackoverflow.com/questions/22476086
复制相似问题