JavaScript实现两个日期之间的工时计算,排除周末,每天工作日是8小时
发表于:2023-06-16 09:59:06浏览:2098次
实现计算两个日期之间的工时计算,需要排除周末,每天的上班时间是上午9:00至12:00,下午13:00至18:00,每天工作日是8小时。以下是使用JavaScript实现计算两个日期之间的工时的代码,其中排除了周末和休息时间:
要计算两个日期之间的工时,可以按照以下步骤进行:
可以使用Date对象和一些简单的数学运算来实现计算两个日期之间的工时,并排除周末。
下面是一个示例代码,演示如何计算两个日期之间的工时:
function calculateWorkingHours(startDate, endDate) {
// 创建Date对象,用于表示开始时间和结束时间
const startTime = new Date(startDate);
const endTime = new Date(endDate);
// 计算两个日期之间的天数差
const daysDiff = Math.abs(endTime.getDate() - startTime.getDate()) + Math.abs(endTime.getMonth() - startTime.getMonth()) * 31;
// 计算工作日总时长
let workingHours = daysDiff * 8;
// 排除周末时间
for (let i = 0; i < daysDiff; i++) {
const currentDate = new Date(startTime.getTime());
currentDate.setDate(currentDate.getDate() + i);
const dayOfWeek = currentDate.getDay();
if (dayOfWeek === 0 || dayOfWeek === 6) {
workingHours -= 8;
}
}
// 排除休息时间(假设每天工作8小时,上午9:00至12:00,下午13:00至18:00)
for (let i = 0; i < daysDiff; i++) {
const currentDate = new Date(startTime.getTime());
currentDate.setDate(currentDate.getDate() + i);
const hour = currentDate.getHours();
if (hour < 9 || hour >= 18) {
workingHours -= 8;
} else if (hour >= 12) {
workingHours -= hour - 12;
} else if (hour >= 9) {
workingHours -= hour - 9;
}
}
return workingHours;
}
使用示例:
const startDate = '2023-06-10'; // 开始日期,格式为YYYY-MM-DD
const endDate = '2023-06-16'; // 结束日期,格式为YYYY-MM-DD
const workingHours = calculateWorkingHours(startDate, endDate); // 计算工作日总时长,单位为小时
console.log(workingHours); // 输出结果:56小时(假设从2023-06-10到2023-06-16期间没有休息日)
推荐文章
- PHP实现计算剩余几天几时几分倒计时间的方法
- 如何给OA系统加上名字工号的水印?其实很简单,WEB前端就能实现添加水印
- JavaScript实现两个日期之间的工时计算,排除周末,每天工作日是8小时
- 谷歌发布全新操作系统chromeOS Flex首个稳定版,可用于 PC 和 Mac
- ES6 用反引号(`)标识模板字符串详解
- 免费杀毒软件是火绒好还是360好?
- Gitee内的开源项目的指数是如何计算的?
- ThinkPHP发布安全更新版本(V6.1.0/V6.0.14),移除对think-filesystem库的依赖
- Thinkphp6获取请求的模块名、类名和方法名的方式
- phpword 使用TemplateProcessor方式实现在word模板中动态插入表格