JS 计算外出办事时间(按照一天工作八小时制)
2012-06-19 15:35
295 查看
下午写了一小段JS代码,来计算公司人员外出办事时间。
已知条件:外出一天按照八小时工作制来计算。
当天返回公司直接计算外出时间。
外出时间不满一小时按照一小时计算。
如果是非工作日不做计算,在这里没写进去。
<script>
function DateDiff()
{
//获得界面的开始结束日期
var bDate=document.getElementById('lvi_startdate').value;
var eDate=document.getElementById('lvi_enddate').value;
//获取开始结束时间值
var bTime=document.getElementById('lvi_startdate_TIME').value;
var eTime=document.getElementById('lvi_enddate_TIME').value;
//判断时间值是否为空
if(bDate==""||bTime=="")return;
if(eTime==""||eDate=="")return;
if(bDate>eDate){alert("隔天返回公司的日期不能小于出发日期!");return;}//验证出发日期不能大于返回日期;
//计算结果的天数
var dayNum=parseInt((new Date(eDate)-new Date(bDate))/(1000*60*60*24));
/*根据时间的特殊性不能整天计算时间,而是一天设定为8小时工作,除非工作日。
有两种情况:1:外出当前返回公司。天数为零,直接计算出时间差。
2:外出隔天返回公司,天数差不为零,需要分开计算(天数-1)*8+((18:30-出发时间)+(返回时间-9:30))
*/
var TimeNum=0;
if(dayNum=="0") {
if(bTime>eTime)
{alert("在同一天的内,返回时间不能小于出发时间!");return;}//在当天返回时间不能小于出发时间。
TimeNum=(new Date(eDate+" "+eTime)-new Date(bDate+" "+bTime))/(1000*60*60);
}
else{
var b=(new Date(bDate+" 18:15")-new Date(bDate+" "+bTime))/(1000*60*60);
var e=(new Date(eDate+" "+eTime)-new Date(eDate+" 09:30"))/(1000*60*60);
TimeNum=(b+e)+(dayNum-1)*8;
}
//去除小数点补整
if(TimeNum.toString().indexOf(".")>0)
{
TimeNum=parseInt(TimeNum+1);
}
alert(TimeNum);
}
</script>
已知条件:外出一天按照八小时工作制来计算。
当天返回公司直接计算外出时间。
外出时间不满一小时按照一小时计算。
如果是非工作日不做计算,在这里没写进去。
<script>
function DateDiff()
{
//获得界面的开始结束日期
var bDate=document.getElementById('lvi_startdate').value;
var eDate=document.getElementById('lvi_enddate').value;
//获取开始结束时间值
var bTime=document.getElementById('lvi_startdate_TIME').value;
var eTime=document.getElementById('lvi_enddate_TIME').value;
//判断时间值是否为空
if(bDate==""||bTime=="")return;
if(eTime==""||eDate=="")return;
if(bDate>eDate){alert("隔天返回公司的日期不能小于出发日期!");return;}//验证出发日期不能大于返回日期;
//计算结果的天数
var dayNum=parseInt((new Date(eDate)-new Date(bDate))/(1000*60*60*24));
/*根据时间的特殊性不能整天计算时间,而是一天设定为8小时工作,除非工作日。
有两种情况:1:外出当前返回公司。天数为零,直接计算出时间差。
2:外出隔天返回公司,天数差不为零,需要分开计算(天数-1)*8+((18:30-出发时间)+(返回时间-9:30))
*/
var TimeNum=0;
if(dayNum=="0") {
if(bTime>eTime)
{alert("在同一天的内,返回时间不能小于出发时间!");return;}//在当天返回时间不能小于出发时间。
TimeNum=(new Date(eDate+" "+eTime)-new Date(bDate+" "+bTime))/(1000*60*60);
}
else{
var b=(new Date(bDate+" 18:15")-new Date(bDate+" "+bTime))/(1000*60*60);
var e=(new Date(eDate+" "+eTime)-new Date(eDate+" 09:30"))/(1000*60*60);
TimeNum=(b+e)+(dayNum-1)*8;
}
//去除小数点补整
if(TimeNum.toString().indexOf(".")>0)
{
TimeNum=parseInt(TimeNum+1);
}
alert(TimeNum);
}
</script>
相关文章推荐
- JS 获取当天所在月的最后一天日期,所在周的每天的日期,时间的计算
- JS时间的计算,当前日期加一天或者几天的计算
- js判断润年,计算某一天几个月or几天后是什么时间
- js 时间格式与时间戳的相互转换和计算几天后的日期是哪一天
- js 使用console计算代码运行时间
- js中日期格式正则和两日期相差时间计算
- JS快速获取当前时间减一小时、一天及日期格式处理
- js当前时间加减一天,和格式化时间格式
- JS计算时间天数
- js 获取某一天的前一天时间或者后一天时间
- js计算两个时间之间天数差的实例代码
- JS 计算时间差
- js计算输入日期的前一天,后一天(上一日,下一日)。兼容safari
- 每天进步一点点---------JS之平均时间计算
- 计算两个时间的差,得到昨天时间,得到下个月最后一天
- JS中String类型转换Date类型 并 计算时间差
- JS 计算两日期时间相差多少天
- 用js计算页面执行时间的函数
- js中计算时间差
- Js 时间间隔计算(间隔天数)