## 时间区间伪代码片段 原

王春-海子

var a =[9,12:30,-,13:30,18];//时间区间，上午时间为 9-12:30下午时间为13:30-18:00，不需要用横线分割
var len=0;

var s,e;//分别为开始结束时间
for(var i=0,len=a.length;i<len;i++){
if(a[i]=='-' || a[i+1]=='-'){//要空出的时间直接不计算
continue;
}
if(e<a[i] || s>a[i+1] ){//位于区间外不计算时间
continue;
}else if(s<a[i] && e<a[i+1]){//位于开始时间之后
len+=e-a[i];
}else if (s<a[i] && e>a[i+1]){
len+=a[i+1]-a[i];
}else if (s>a[i] && e<a[i+1]){
len+=e-s;
}else if (s>a[i] && e>a[i+1]){
len+=a[i+1]-s;
}
}

var a =[9,12:30,13:30,18]
var s,e
//分别设置好边界
if(s<a[0]){
s=a[0];
}
if(e>a[3]){
e=a[3];
}
if(e<a[2] || s>a[3] ){//位于2端时，则各自相减
len=e-s;
}else if(s<a[2] && e<a[3]){//包含开始时
len+=a[2]-s;
}else if (s>a[2] && e>a[3]){//包含结束时
len+=e-a[3];
}else if (s<a[2] && e>a[3]){//包含结束时
len+=(a[2]-s)+(e-a[3]);
}

var len=0;
var workArr=['09:00','12:30','13:30','18:00'];
var workTimeArr=[];
for(var i=0,len=workArr.length;i<len;i++){//设置当天的时间字符串
workTimeArr.push(getNowFormatDate(workArr[i]));
}
if(sizeComparFun(startTime,workTimeArr[0])){
startTime=workTimeArr[0];
}
if(sizeComparFun(workTimeArr[3],endTime)){
endTime=workTimeArr[3];
}
if(sizeComparFun(endTime,workTimeArr[1]) || sizeComparFun(workTimeArr[2],startTime) ){
len=timeCol(startTime,endTime);
}else if(sizeComparFun(endTime,workTimeArr[2]) && sizeComparFun(startTime,workTimeArr[1]) ){
len=timeCol(startTime,workTimeArr[1]);
}else if(sizeComparFun(workTimeArr[1],startTime) && sizeComparFun(workTimeArr[2],endTime) ){
len=timeCol(workTimeArr[2],endTime);
}else if(sizeComparFun(startTime,workTimeArr[1]) && sizeComparFun(workTimeArr[2],endTime) ){
len=timeCol(startTime,workTimeArr[1])+timeCol(workTimeArr[2],endTime);
}
return len;
}

function timeCol(startDate,endDate){
var longtime=(new Date(Date.parse(endDate.replace(/-/g,  "/")+":00"))-new Date(Date.parse(startDate.replace(/-/g,  "/")+":00")))/3600000;
return longtime;
}
function sizeComparFun(t1,t2){
var bool=new Date(Date.parse(t2.replace(/-/g,  "/")+":00"))>=new Date(Date.parse(t1.replace(/-/g,  "/")+":00"));
return bool;
}

### 王春-海子

iamlichao
2014/05/14
265
1
C# 判断一个时间点是否位于给定的时间区间（字符串格式）

2014/07/15
2.4K
0
HTTP chunked编码数据流解析算法

IamOkay
2016/04/27
4.1K
1
webpack及node.js基础必会--path模块的常见操作

shotCat
04/15
0
0
Joda-time学习笔记

2015/08/27
3.9K
0

android抓取app启动类

adb shell,然后logcat | grep "ActivityManager: START"

17分钟前
11
0

codeobj
21分钟前
10
0

22分钟前
9
0
mobile-nfv运行步骤

1. 编译过程 在 [workspaces] 的 <workdir> 目录运行以下命令： \$ nfv-build make clean all... \$ nfv-build make mobile-package...*** PACKAGE BUILT AT: /vob/BUG_117504/casa/nfv/b......

Robotcl_Blog
31分钟前
10
0

Zoho云服务
32分钟前
14
0