近来有个任务,即求两段时间是否有重叠及重叠了多少.
查遍了所有网,没有找到结果,结果花了两天的功夫,写了以下程序.
望能对各位有用.输入两组数据,可以找到这两组数据有没有重叠及重叠了多少.<HTML lang=en xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE>区间比较</TITLE><BODY>
[原创] 比较两个区间的重叠度:<br/>
Gu Laicheng 2009.8.13<br/>
l1 第一区间的长度(短)<br/>
l2 第二区间的长度(长)<br/>
d1 两区间左端的距离<br/>
d2 两区间右端的距离<br/>
d3 第一区间左端与第二区间右端的距离<br/>
d4 第一区间右端与第二区间左端的距离<br/>
d5 重叠部分长度<br/>
<script type='text/javascript'>
var INTERVAL=2;var CURRWAY = INTERVAL;function Clone(o)
{
var oo={};
for (var k in o) oo[k]=o[k];
return oo;
}function getlength(v1,v2,flg)
{
var l = Math.abs(v1 - v2);
if (flg==POINT) return l;
if (flg==INTERVAL) return l+1;
return NaN;
}function Pair(i1,i2)
{
this.value1=(i1<i2)?(i1):(i2);
this.value2=(i1<i2)?(i2):(i1);
this.length= getlength(i1,i2,CURRWAY);
}
function complength(p1,p2)
{
return (p1.length-p2.length);
}function getashort(p1,p2)
{
var p;
if (complength(p1,p2) < 0)
{
p=Clone(p1);
}
else
{
p=Clone(p2);
}
return p;
}function getalong(p1,p2)
{
var p;
if (complength(p1,p2) >= 0)
{
p=Clone(p1);
}
else
{
p=Clone(p2);
}
return p;
}function superpose(p1,p2)
{
var q1,q2;
q1 = getashort(p1,p2);
q2 = getalong(p1,p2); var d1,d2,d3,d4;
d1 = getlength(q2.value1,q1.value1,CURRWAY);
d2 = getlength(q2.value2,q1.value2,CURRWAY);
d3 = getlength(q2.value2,q1.value1,CURRWAY);
d4 = getlength(q2.value1,q1.value2,CURRWAY); var s="";
d5 = p1.length + p2.length - Math.max(p1.length , p2.length,d1,d2,d3,d4); if (d5 > 0)
s += "<br/>有重叠 ,重叠长度: "+d5;
else
s += "<br/>无重叠 ,重叠长度: "+d5; msg.innerHTML = s;
}
var pair1,pair2;
function clk1()
{
var pair1 = new Pair(parseInt(p11.value),parseInt(p12.value));
var pair2 = new Pair(parseInt(p21.value),parseInt(p22.value));
superpose(pair1,pair2);
}</script>
区间1:<input name=p11 size=5> - <input name=p12 size=5><br/>
区间2:<input name=p21 size=5> - <input name=p22 size=5><br/>
<input type=button value=clickme onclick="clk1();"><br/>
<span id=msg></span>
</BODY>
</HTML>
查遍了所有网,没有找到结果,结果花了两天的功夫,写了以下程序.
望能对各位有用.输入两组数据,可以找到这两组数据有没有重叠及重叠了多少.<HTML lang=en xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE>区间比较</TITLE><BODY>
[原创] 比较两个区间的重叠度:<br/>
Gu Laicheng 2009.8.13<br/>
l1 第一区间的长度(短)<br/>
l2 第二区间的长度(长)<br/>
d1 两区间左端的距离<br/>
d2 两区间右端的距离<br/>
d3 第一区间左端与第二区间右端的距离<br/>
d4 第一区间右端与第二区间左端的距离<br/>
d5 重叠部分长度<br/>
<script type='text/javascript'>
var INTERVAL=2;var CURRWAY = INTERVAL;function Clone(o)
{
var oo={};
for (var k in o) oo[k]=o[k];
return oo;
}function getlength(v1,v2,flg)
{
var l = Math.abs(v1 - v2);
if (flg==POINT) return l;
if (flg==INTERVAL) return l+1;
return NaN;
}function Pair(i1,i2)
{
this.value1=(i1<i2)?(i1):(i2);
this.value2=(i1<i2)?(i2):(i1);
this.length= getlength(i1,i2,CURRWAY);
}
function complength(p1,p2)
{
return (p1.length-p2.length);
}function getashort(p1,p2)
{
var p;
if (complength(p1,p2) < 0)
{
p=Clone(p1);
}
else
{
p=Clone(p2);
}
return p;
}function getalong(p1,p2)
{
var p;
if (complength(p1,p2) >= 0)
{
p=Clone(p1);
}
else
{
p=Clone(p2);
}
return p;
}function superpose(p1,p2)
{
var q1,q2;
q1 = getashort(p1,p2);
q2 = getalong(p1,p2); var d1,d2,d3,d4;
d1 = getlength(q2.value1,q1.value1,CURRWAY);
d2 = getlength(q2.value2,q1.value2,CURRWAY);
d3 = getlength(q2.value2,q1.value1,CURRWAY);
d4 = getlength(q2.value1,q1.value2,CURRWAY); var s="";
d5 = p1.length + p2.length - Math.max(p1.length , p2.length,d1,d2,d3,d4); if (d5 > 0)
s += "<br/>有重叠 ,重叠长度: "+d5;
else
s += "<br/>无重叠 ,重叠长度: "+d5; msg.innerHTML = s;
}
var pair1,pair2;
function clk1()
{
var pair1 = new Pair(parseInt(p11.value),parseInt(p12.value));
var pair2 = new Pair(parseInt(p21.value),parseInt(p22.value));
superpose(pair1,pair2);
}</script>
区间1:<input name=p11 size=5> - <input name=p12 size=5><br/>
区间2:<input name=p21 size=5> - <input name=p22 size=5><br/>
<input type=button value=clickme onclick="clk1();"><br/>
<span id=msg></span>
</BODY>
</HTML>
解决方案 »
- 请高手来帮小弟实现加载动画效果并在固定位置画一圈点。
- 使用dojo,json数据无法读入
- jquery 背景 图片 的宽度值?
- web开发过程中 比较常用的javascript 技术
- 怎么让一个层在图片上可控制大小可移动?
- javascript:open()问题 ,高手请进,,。。。
- Bxslider 怎么更改可以隐藏prev , next
- 为什么StringBuffer的耗时比+=的耗时还要长。。。
- easyui如何在accordion里面生成tree
- 在一个页中onmousedown能被赋予两个不同的函数吗?????
- javascript如何获取服务器IP
- 怎么让IMG的ONCLICK点了后焦点别回到页面顶部??菜鸟在线等
貌似是这样的功能