首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

使用js计算工时的有关问题(高手帮忙)

2012-03-18 
使用js计算工时的问题(高手帮忙)从外部传入两个参数:开始时间、结束时间 (格式:2010-1-1 9:30)输入的时间只

使用js计算工时的问题(高手帮忙)

从外部传入两个参数:开始时间、结束时间 (格式:2010-1-1 9:30)输入的时间只有两种形式,整的时间和半点的时间(9:00 或者 9:30) 

工作时间按9:30-12:00,13:00-18:30计(12:00-13:00午休不计入工时)。双休日也要踢除。超出以上时间范围的均不计入工时;

下面括号里的看不清楚就不用做:
(显示开始时间与结束时间计算出的数值,公示基础以A.BC(A为天、B为小时C为半小时用5代表,8小时升位);例如:
1.45 表示1天零4个半小时,即开发共用12.5小时;0.05 表示半小时)

[解决办法]
OK!

JScript code
<script>function getHour(d1,d2){    if(d1>=d2)return 0;    var rtn=Math.floor(((d2-d1)/(3600*1000))/24);    var temp=0;        rtn=Math.floor(((d2-d1)/(3600*1000))/24);    while(d1.getHours()*60+d1.getMinutes()!=d2.getHours()*60+d2.getMinutes()){        if(d1.getHours()*60+d1.getMinutes()>=9*60+30 &&           d1.getHours()*60+d1.getMinutes()<12*60){            temp+=0.05;        }        if(d1.getHours()*60+d1.getMinutes()>=13*60 &&           d1.getHours()*60+d1.getMinutes()<18*60+30){            temp+=0.05;        }        d1.setTime(d1.getTime()+0.5*3600*1000);    }    rtn+=Math.floor(temp/0.8);    rtn+=temp%0.8;    rtn=Math.floor(rtn*100)/100    alert(rtn);}getHour(new Date("2010/1/1 12:30"),new Date("2010/1/2 11:30"));getHour(new Date("2010/1/1 10:30"),new Date("2010/1/2 19:30"));getHour(new Date("2010/1/1 8:30"),new Date("2010/1/2 17:30"));</script> 

热点排行