JS实现请假天数自动计算:跨天、半日计算及示例代码
以下是一个实现该功能的示例代码:
function calculateLeaveDays() {
var startDate = document.getElementById('start-date').value;
var startTime = document.getElementById('start-time').value;
var endDate = document.getElementById('end-date').value;
var endTime = document.getElementById('end-time').value;
var startDateTime = new Date(startDate + ' ' + startTime);
var endDateTime = new Date(endDate + ' ' + endTime);
var days = 0;
// 计算请假天数
while (startDateTime < endDateTime) {
var startHour = startDateTime.getHours();
var endHour = endDateTime.getHours();
// 判断是否跨天
if (startDateTime.getDate() < endDateTime.getDate()) {
// 加一天
days += 1;
startDateTime.setDate(startDateTime.getDate() + 1);
// 重置开始时间为0:00
startDateTime.setHours(0, 0, 0, 0);
} else {
// 判断时间段是否在上午或下午工作时间区间内
if ((startHour >= 0 && startHour < 12) || (endHour >= 12 && endHour < 24)) {
days += 0.5;
}
break;
}
}
// 填入请假天数
document.getElementById('leave-days').value = days;
}
上面的代码假设页面上有以下元素:
start-date:开始日期的输入框(格式为'YYYY-MM-DD')start-time:开始时间的输入框(格式为'HH:mm')end-date:结束日期的输入框(格式为'YYYY-MM-DD')end-time:结束时间的输入框(格式为'HH:mm')leave-days:请假天数的输入框
你可以根据实际情况修改代码中的元素选择器和日期时间格式。
在页面中选择开始时间和结束时间后,调用calculateLeaveDays函数即可计算并填入请假天数。
原文地址: https://www.cveoy.top/t/topic/p8Ps 著作权归作者所有。请勿转载和采集!