求一个关于时间段的算法, 关于时间段不能重叠的问题
比如某个房间,已经被预定了下面的时间段:
2014-03-16至2014-04-16
2014-06-25至2014-8-25
2014-11-01至2014-12-01
... (其它已预定的时间段)
如果有人再预定,时间段不能和上面的时间段重叠,例如2014-04-10至2014-05-10是不允许的(和第一行的时间段部分重叠),而2014-04-17至2014-05-17是可以的...
请问怎么写? 伪代码也可以
------解决方案--------------------<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
	function test(str){
		var a=['2014-03-16至2014-04-16','2014-06-25至2014-8-25','2014-11-01至2014-12-01'];
		var n=sp(str);
		var m=0;
		for(var i=0,len=a.length;i<len;i++){
			var k=sp(a[i]);
			if(k[0]>n[1]
------解决方案--------------------
k[1]<n[0]){
				m++;
			}else{
				break;
			}
		}
		return m==a.length;
	}
	function sp(str){
		return str.split('至');
	}
	alert(test('2014-04-10至2014-05-10'));
	alert(test('2014-04-17至2014-05-17'));
</script>
</head>
<body>
</body>
</html>
------解决方案--------------------<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
 </head>
 <body>
  <script type="text/javascript">
  <!--
	function datebet(start,end){
		this.start = start;
		this.end = end;
		this.checkIn = function(p){
			if(p.start>=this.start && p.start<=this.end){
				return true;
			}
			if(p.end >= this.start && p.end <= this.end){
				return true;
			}
			return false;
		}
	}
	var dbed = [new datebet('2014-03-16','2014-04-16'),new datebet('2014-06-25','2014-08-25'),new datebet('2014-11-01','2014-12-01')];
	function checkOk(dbs,p){
		for(var i = 0;i<dbs.length;i++){
			var db = dbs[i];
			if(db.checkIn(p)){
				return false;
			}
		}
		return true;
	}
	var p1 = new datebet('2014-04-10','2014-05-10');
	var p2 = new datebet('2014-04-17','2014-05-17');
	document.writeln(checkOk(dbed,p1));
	document.writeln(checkOk(dbed,p2));
  //-->
  </script>
 </body>
</html>