工作时间是8:30~17:30 要根据结束时间和开始时间算出相差多少小时,放假不算在内??JQuery 或JS怎么写? 50

求高手... 求高手 展开
 我来答
百度网友a19d193
2013-04-24 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1440万
展开全部
var startHour = 8;
var startMin = 30;
var endHour = 17;
var endMin = 30;
function getOffsetTime(startHour, startMin, endHour, endMin){
var date = new Date();
date.setHours(startHour);
date.setMinutes(startMin);
var startTime = parseInt(date.valueOf() / 1000, 10);
date.setHours(endHour);
date.setMinutes(endMin);
var endTime = parseInt(date.valueOf() / 1000, 10);
var result = {};
result.hours = (endTime - startTime) / 3600;
result.minutes = ((endTime - startTime) % 3600) / 60;
return result;
}
var timeOffset = getOffsetTime(startHour, startMin, endHour, endMin);


timeOffset的值为

Object { hours:9,  minutes:0}


如果午休1小时的话,把结果中的hours-1就行了

更多追问追答
追问
周日周末也要去掉的。。。
追答

亲,这个是两件事情。以上的函数只是计算1天中的两个时间点间相差的小时数。

如果你需要去掉午休,可以对函数的计算结果进行补充计算

如果要去掉周末,那是你外层循环的事情,你需要自行计算有多少工作日。

这样,我把函数给你改一下,让它返回分钟数

/**
* 该函数计算同一天内的两个时间点间相差多少分钟
* 4个参数分别为几点开始,几分开始,几点结束,几分结束
* 返回值为整数,表示分钟数,当开始结束大于结束时间时返回负值
*/
function getOffsetTime(startHour, startMin, endHour, endMin){
var date = new Date();
date.setHours(startHour);
date.setMinutes(startMin);
var startTime = parseInt(date.valueOf() / 1000, 10);
date.setHours(endHour);
date.setMinutes(endMin);
var endTime = parseInt(date.valueOf() / 1000, 10);
var result = {};
return parseInt((endTime - startTime) / 60, 10);
}

这样做这个函数就会返回一个工作日的工作分钟数了,你自己去计算有多少工作日,然后工作日数量*工作分钟就得到总分钟数了。


亲,不可以太贪心哈,你一点悬赏都没有,我可是连代码都给你写出来了。

远去的风6
2013-04-24
知道答主
回答量:38
采纳率:0%
帮助的人:17.5万
展开全部
中午1小时休息
Januery
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8041235
2013-04-24 · TA获得超过227个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:228万
展开全部
直接要代码的话,你给的分有点少了 !
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式