计算每天工时的脚本

//计算两个时间的差值
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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值