公司上班时间计算
火狐:
<script type="text/javascript"> document.getElementsByClassName = function (className) { var allArray = new Array(); var elements = new Array(); if (typeof document.all != "undefined") { allArray = document.all } else { allArray = document.getElementsByTagName("*") } for (var i = 0; i < allArray.length; i++) { var isClassName = hasClassName(allArray[i], className); if (isClassName) { elements.push(allArray[i]) } } return elements }; function hasClassName(element, className) { var elementClassName = element.className; if (elementClassName.length == 0) return false; if (elementClassName == className || elementClassName.match(new RegExp("(^|\\s)" + className + "(\\s|$)"))) return true; return false } function GetTime(num) { var hours = Math.floor(num / 3600000); var a = num % 3600000; var minute = Math.floor(a / 60000); var b = minute % 60000; var second = Math.floor(b / 1000); return hours + ":" + minute + ":" + second; } var list = window.frames["Main"].document.getElementsByClassName("listAC"); var arr = []; var pros = []; for (var i = 0; i < list.length; i++) { var tbody = list[i].children[0]; var td = tbody.children[1].children[0]; var td2 = tbody.children[2].children[0].children[0]; var html = td.innerHTML; var prompt = td2.innerHTML; if (html != "无刷卡记录") { if (prompt == "无") { arr.push(html); } else { var da = tbody.children[0].children[0].children[0].children[0].innerHTML; var obj = {}; obj.Date = da; obj.Des = prompt; pros.push(obj); } } } var total = 0; for (var i = 0; i < arr.length; i++) { var time = arr[i]; var exTime1 = time.split('~')[0]; if (exTime1 < "08:00") { exTime1 = "08:00"; } var exTime2 = time.split('~')[1]; var begin = exTime1.split(':')[0] * 60 * 60 * 1000 + exTime1.split(':')[1] * 60 * 1000; var end = exTime2.split(':')[0] * 60 * 60 * 1000 + exTime2.split(':')[1] * 60 * 1000; var ti = end - begin; total += ti; } var avg = Math.round(total / parseInt(arr.length)); console.log("上班总时间:" + GetTime(total)); console.log("上班平均时间:" + GetTime(avg)); console.log("上班天数:" + arr.length); var res = total - arr.length * 9 * 60 * 60 * 1000; if (res > 0) { console.log("多上班时间:" + GetTime(res)); } else { console.log("少上班时间:" + GetTime(-res)); } if (pros.length > 0) { for (var i = 0; i < pros.length; i++) { console.log(pros[i].Date + "号" + pros[i].Des); } } </script>
chrome:console
document.getElementsByClassName = function (className) { var allArray = new Array(); var elements = new Array(); if (typeof document.all != "undefined") { allArray = document.all } else { allArray = document.getElementsByTagName("*") } for (var i = 0; i < allArray.length; i++) { var isClassName = hasClassName(allArray[i], className); if (isClassName) { elements.push(allArray[i]) } } return elements }; function hasClassName(element, className) { var elementClassName = element.className; if (elementClassName.length == 0) return false; if (elementClassName == className || elementClassName.match(new RegExp("(^|\\s)" + className + "(\\s|$)"))) return true; return false } function GetTime(num) { var hours = Math.floor(num / 3600000); var a = num % 3600000; var minute = Math.floor(a / 60000); var b = minute % 60000; var second = Math.floor(b / 1000); return hours + ":" + minute + ":" + second; } var list = window.frames["Main"].document.getElementsByClassName("listAC"); var arr = []; var pros = []; for (var i = 0; i < list.length; i++) { var tbody = list[i].children[0]; var td = tbody.children[1].children[0]; var td2 = tbody.children[2].children[0].children[0]; var html = td.innerHTML; var prompt = td2.innerHTML; if (html != "无刷卡记录") { if (prompt == "无") { arr.push(html); } else { var da = tbody.children[0].children[0].children[0].children[0].innerHTML; var obj = {}; obj.Date = da; obj.Des = prompt; pros.push(obj); } } } var total = 0; for (var i = 0; i < arr.length; i++) { var time = arr[i]; var exTime1 = time.split('~')[0]; if (exTime1 < "08:00") { exTime1 = "08:00"; } var exTime2 = time.split('~')[1]; var begin = exTime1.split(':')[0] * 60 * 60 * 1000 + exTime1.split(':')[1] * 60 * 1000; var end = exTime2.split(':')[0] * 60 * 60 * 1000 + exTime2.split(':')[1] * 60 * 1000; var ti = end - begin; total += ti; } var avg = Math.round(total / parseInt(arr.length)); var res = total - arr.length * 9 * 60 * 60 * 1000; if (res > 0) { alert("多上班时间:" + GetTime(res)); } else { alert("少上班时间:" + GetTime(-res)); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)