//计算两个时间的差值
function calc(start, end) {
result = ""
sH = parseInt(start.substring(0, 2));
sM = parseInt(start.substring(3, 5));
sS = parseInt(start.substring(6, 8));
eH = parseInt(end.substring(0, 2));
eM = parseInt(end.substring(3, 5));
eS = parseInt(end.substring(6, 8));
if (eS < sS) {
eM = eM - 1;
result = ":" + (eS + 60 - sS).toString()
}
else {
result = ":" + (eS - sS).toString()
}
if (eM < sM) {
eH = eH - 1;
result = ":" + (eM + 60 - sM).toString() + result
} else {
result = ":" + (eM - sM).toString() + result
}
result = (eH - sH).toString() + result
return result
}
function TimeAdd(t1, t2){
result = ""
h1 = parseInt(t1.substring(0, t1.indexOf(':')));
m1 = parseInt(t1.substring(t1.indexOf(':')+1, t1.indexOf(':', t1.indexOf(':')+1)));
s1 = parseInt(t1.substring(t1.indexOf(':', t1.indexOf(':')+1)+1));
h2 = parseInt(t2.substring(0, t2.indexOf(':')));
m2 = parseInt(t2.substring(t2.indexOf(':')+1, t2.indexOf(':', t2.indexOf(':')+1)));
s2 = parseInt(t2.substring(t2.indexOf(':', t2.indexOf(':')+1)+1));
mp = 0
hp = 0
if(s1 + s2 >= 60){
result = ":" + (s1 + s2 - 60).toString()
mp = 1
}else{
result = ":" + (s1 + s2).toString()
}
if(m1 + m2 + mp >= 60){
result = ":" + (m1 + m2 + mp - 60).toString() + result
hp = 1
}else{
result = ":" + (m1 + m2 + mp).toString() + result
}
result =(h1 + h2 + hp).toString() + result
return result
}
var listNum = document.getElementsByTagName("tbody")[0].children.length;
var list=[]
i=1;
for(i;i<listNum;i++){
list.push(document.getElementsByTagName("tbody")[0].children[i].innerText);
}
i=0;
var timeList=[]
for(i;i<list.length;i++){
var pattern = /(202\d{1}-\d{1,2}-\d{1,2})\s+([\u4E00-\u9FA5]{2})\s+([\u4E00-\u9FA5]{1,10})\s+([\u4E00-\u9FA5]{2,4})\s+[\u4E00-\u9FA5]{2,4}\s+202\d{1}-\d{1,2}-\d{1,2}\s+(\d{2}:\d{2}:\d{2})\s+202\d{1}-\d{1,2}-\d{1,2}\s+(\d{2}:\d{2}:\d{2})\s+(\d{1,3})/g;
var str = list[i];
pattern.exec(str);
timeList.push(calc(RegExp.$5, RegExp.$6))
}
i=0;
allTime = "00:00:00"
for(i;i<timeList.length;i++){
allTime = TimeAdd(allTime,timeList[i])
}
console.log("总工时:"+allTime)
// 分离出时分秒 /(202\d{1}-\d{1,2}-\d{1,2})\s+([\u4E00-\u9FA5]{2})\s+([\u4E00-\u9FA5]{1,10})\s+([\u4E00-\u9FA5]{2,4})\s+[\u4E00-\u9FA5]{2,4}\s+202\d{1}-\d{1,2}-\d{1,2}\s+(\d{2}):(\d{2}):(\d{2})\s+202\d{1}-\d{1,2}-\d{1,2}\s+(\d{2}):(\d{2}):(\d{2})\s+(\d{1,3})/g
// 未分离的 (202\d{1}-\d{1,2}-\d{1,2})\s+([\u4E00-\u9FA5]{2})\s+([\u4E00-\u9FA5]{1,10})\s+([\u4E00-\u9FA5]{2,4})\s+[\u4E00-\u9FA5]{2,4}\s+202\d{1}-\d{1,2}-\d{1,2}\s+(\d{2}:\d{2}:\d{2})\s+202\d{1}-\d{1,2}-\d{1,2}\s+(\d{2}:\d{2}:\d{2})\s+(\d{1,3})
//RegExp.$1 --- 2021-12-20
//RegExp.$2 --- 周一
//RegExp.$3 --- XXX研发部门
//RegExp.$4 --- 佐助
//RegExp.$5 --- 08:47:29
//RegExp.$6 --- 18:00:49
//RegExp.$7 --- 5
计算每天工时的脚本
最新推荐文章于 2024-10-18 11:12:30 发布