很久不做web,现在又回头去了,开始就OA,苦逼
今天有个要算工时的,去搜了下,有同样需求的还真不少,js大牛也不少,让很久不写前端的我也膜拜下,实际上是找个了大牛些的改了改,就完成了。
不多说明,只为有个备份的记忆
<script>
DateDiffNoWeekDay(new Date("2013/05/02 14:30:00"),new Date("2013/05/07 12:30:00"));
function carryTime(date){
if(date.getMinutes()>0&&date.getMinutes()<15){
date.setMinutes(0);
}
if(date.getMinutes()>=15&&date.getMinutes()<30){
date.setMinutes(30);
}
if(date.getMinutes()>30&&date.getMinutes()<45){
date.setMinutes(30);
}
if(date.getMinutes()>=45){
date.setHours(date.getHours()+1);
date.setMinutes(0);
}
return date;
}
function DateDiffNoWeekDay(startTime,endTime){
if(startTime>=endTime) return 0;
startTime=carryTime(startTime);
endTime=carryTime(endTime);
var totalTime=0;
if(startTime.getDay()==6||startTime.getDay()==0){
totalTime=endTime.getDate()-startTime.getDate();
}else{
totalTime=Math.floor(((endTime-startTime)/(3600*1000))/24);
}
var tempStartTime=new Date();
tempStartTime.setTime(startTime.getTime());
var temp=0;
while(tempStartTime.getDate()<endTime.getDate()){
if(tempStartTime.getDay()==6||tempStartTime.getDay()==0){
totalTime--;
}
tempStartTime.setDate(tempStartTime.getDate()+1);
}
do{
if(startTime.getDay()==6 || startTime.getDay()==0){
startTime.setDate(startTime.getDate()+1);
startTime.setHours(9);
startTime.setMinutes(0);
continue;
}
if(startTime.getHours()*60+startTime.getMinutes()>=9*60 && startTime.getHours()*60+startTime.getMinutes()<17*60){
temp+=0.05;
}
startTime.setTime(startTime.getTime()+0.5*3600*1000);
}while(startTime.getHours()*60+startTime.getMinutes()!=endTime.getHours()*60+endTime.getMinutes())
totalTime+=Math.floor(temp/0.8);
totalTime+=temp%0.8;
totalTime=Math.round(totalTime*100)/100
var days=Math.floor(totalTime);
var hours=Math.round((totalTime-days)*100)/10;
document.write(" <u> "+days+" </u>day<u> "+hours+" </u>hour");
return totalTime;
}
</script>
分享到:
相关推荐
计算有效工时,工作日,休息日等工具,可排除 法定假日,周末上班,周末等,内含多种测试用例,计算有效工时,工作日,休息日等工具,可排除 法定假日,周末上班,周末等,内含多种测试用例
本主题聚焦于一个特定的C#应用:输入开始和结束时间后,自动计算工时数,同时考虑了工作日与非工作日(包括节假日)的区别以及不同时间段的工时倍数。 首先,我们需要理解C#中的DateTime类,它是处理日期和时间的...
机械加工资料之-机加工费用计算报价明细及计算表工时定额计算等资料 一般机加工费用计算.xls 五金零件机加工报价计算表.xls 各种机加工工时计算.xls 工时定额计算(最终版)DOC.pdf 工时定额计算.xls 工时定额计算标准...
例如,确定工作日与周末,计算每日工时,统计月度总工时,甚至可能涉及到异常情况的处理,如迟到、早退或未打卡。这些计算可能需要在数据库层面进行,也可以在Java代码中实现,然后将结果更新到数据库或展示在用户...
"禅道剩余工时自动计算"这一主题主要聚焦在项目管理软件禅道(Zentao)的功能上,尤其是关于任务管理、工时跟踪以及自动化计算的方面。禅道是一款广泛应用于IT行业,专为敏捷开发团队设计的项目管理工具,它提供了一...
JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),...
"企业实行不定时工作制和综合计算工时工作制申请表" 本资源主要涉及到企业实行不定时工作制和综合计算工时工作制的申请流程和相关规定。下面是该资源中所包含的知识点: 1. 企业实行不定时工作制和综合计算工时...
在机械制造领域,工时计算是一项至关重要的任务,它涉及到生产效率、成本控制以及项目进度管理等多个方面。本文将深入探讨“机械加工工时计算”的核心概念、方法以及相关工具,帮助读者理解并掌握这一关键技能。 ...
财务部考勤数据-计算工时
计算工时.xlsx源码EXCEL VBA宏编程xlsx实例代码下载计算工时.xlsx源码EXCEL VBA宏编程xlsx实例代码下载计算工时.xlsx源码EXCEL VBA宏编程xlsx实例代码下载计算工时.xlsx源码EXCEL VBA宏编程xlsx实例代码下载 ...
《工时定额计算软件版本20100601》是一款专为工程报价和成本控制设计的应用软件。在工程行业中,准确预估工时定额是项目管理的关键环节,它涉及到项目的预算制定、成本核算以及进度规划等多个方面。这款软件通过科学...
使用说明 1.编辑数据库: a,选择好 机型,铜线,工件材料 右上角会显示对应的数据库文件....3.在统达软件中计算工时:将本软件生成的数据文件放入统达目录,修改对应的后处理文件,即可在编程时自动生成工时
js 计算当天正常工时和加班工时 - workTimeUtil.js
这份文档提供的是一份适用于综合计算工时制和计件工资制度的专业版劳动合同模板,主要涵盖了以下几个重要的法律知识点: 1. **合同依据**:合同的签订遵循《中华人民共和国劳动法》和《中华人民共和国劳动合同法》...
在Python编程语言中,计算工时是一项常见的任务,特别是在项目管理、人力资源或个人时间跟踪等领域。这个标题和描述暗示了作者可能创建了一个简单的脚本来帮助自己管理或追踪工作时间。以下是一些关于如何使用Python...
焊接工时定额软件是一种专为焊接作业设计的计算工具,它主要的功能是帮助用户根据特定的焊接条件和参数,精确地预估工程所需的工时和相关成本。这种软件在工业生产、工程管理和项目预算中扮演着重要角色,能够提高...
在机械加工领域,工时成本计算是至关重要的环节,它涉及到企业的生产效率、成本控制以及利润分析。"机械加工工时成本计算板"是专为计算车、铣、钻等机械加工过程中的工时和成本设计的工具。下面将详细阐述相关知识点...
机加工工时计算表格
一个简单的工时计算代码,计算从9点到18点,中间去除12-13点。去除周末。暂时没有做去除法定假日,可以自行修改,在去除周末判断处。希望对你们有用