您的位置:首页 > Web前端 > JavaScript

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>

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工作 date