求教js高手赐教..如何判断一个日期段和另一个日期是否有重复,如图显示:

JavaScript013

求教js高手赐教..如何判断一个日期段和另一个日期是否有重复,如图显示:,第1张

function test(){

for(var i=0i<counti++){

var beginDate_i = 开始时间_i

var endDate_i = 结束时间_i

for(var x=0x<countx++){

var beginDate_x = 开始时间_x

var endDate_x = 结束时间_x

if (i!=x){

//判断时间是否交叉

if((endDate_i=="" &&endDate_x=="")||

(parseInt(beginDate_i)<=parseInt(endDate_x) &&endDate_i=="")||

(parseInt(endDate_i)>=parseInt(beginDate_x) &&endDate_x=="")||

(parseInt(beginDate_i)>parseInt(beginDate_x) &&parseInt(beginDate_i)<=parseInt(endDate_x))||

(parseInt(endDate_i)>=parseInt(beginDate_x) &&parseInt(endDate_i)<=parseInt(endDate_x))||

(parseInt(beginDate_i)<=parseInt(beginDate_x) &&parseInt(endDate_i)>=parseInt(endDate_x))){

alert("第"+(i+1)+"条记录与第"+(x+1)+"条记录时间交叉",111)

return

}

}

}

}

}

双层循环判断同一个“视同缴费年限记录”,并且跳过下标相同的情况

<script>

function checkthis(tmp)

{

var str1=tmp

var checkvalue=str1.split(",")

//alert(checkvalue[1])

var chk=document.getElementsByName('checkn')

for (i=0 i<chk.lengthi++)

{

if (chk[i].checked &&chk[i].value!=str1)

{

chkvalue=chk[i].value.split(",")

if((checkvalue[0]<chkvalue[1]&&checkvalue[0]>chkvalue[0])||(checkvalue[1]<chkvalue[1]&&checkvalue[1]>chkvalue[0]))

{

alert(str1+" 和 "+chk[i].value+" 冲突!")

return(false)

break

}

}

}

return(true)

}

</script>

<body>

开始时间是2:00结束时间是4:00 <input type="checkbox" name="checkn" id="c1" value="2,4" onclick="return(checkthis(this.value))"><br>

开始时间是3:00结束时间是5:00 <input type="checkbox" name="checkn" id="c2" value="3,5" onclick="return(checkthis(this.value))"><br>

开始时间是4:00结束时间是6:00 <input type="checkbox" name="checkn" id="c3" value="4,6" onclick="return(checkthis(this.value))"><br>

开始时间是5:00结束时间是7:00 <input type="checkbox" name="checkn" id="c4" value="5,7" onclick="return(checkthis(this.value))"><br>

</body>

以上代码仅供参考,在我本机测试通过的。你可以修改checkbox里面的value值