/**
* 请假工时计算
* starttime 开始时间 "2019-03-28 16:02", endtime 结束时间 "2019-03-29 16:02"
*/
function leaveTime(starttime, endtime) {
var start = new Date(starttime); //start = Thu Mar 28 2019 16:02:00 GMT+0800 (中国标准时间)
var end = new Date(endtime);
var startHour = start.getHours(); //16
var endHour = end.getHours();
var startDate = start.setHours(0, 0, 0); //startDate = 1553702400000
var endDate = end.setHours(0, 0, 0);
var dayNum = parseInt(Math.abs(endDate - startDate) / 1000 / 60 / 60 / 24);
var hour = 0;
if (startHour < 9) {
startHour = 9;
}
//如果开始时间大于18点,
if (startHour > 18) {
startDate += 60 * 60 * 24 * 1000;
starHour = 9;
}
if (endHour < 9) {
endDate -= 60 * 60 * 24 * 1000;
endHour = 18;
}
if (endHour > 18) {
endHour = 18;
}
if (startDate == endDate) {
var date = new Date(startDate);
var week = date.getDay();
if (week != 0 && week != 6) {
hour = endHour - startHour;
if (hour > 0 && hour < 4)
hour = 4;
if (hour > 4)
hour = 8;
}
} else {
for (var i = 0; i <= dayNum; i++) {
var DateTime = startDate + 60 * 60 * 24 * 1000*i
var date = new Date(DateTime);
var week = date.getDay();
if (week != 0 && week != 6) {
if (DateTime == startDate) {
var timehour = 18 - startHour;
if (timehour > 0 && timehour <= 4)
hour =+ 4;
if (timehour > 4)
hour =+ 8;
} else if (DateTime > startDate && DateTime < endDate) {
hour += 8;
} else if (DateTime == endDate){
var timehour = endHour - 9;
if (timehour > 0 && timehour <= 4)
hour += 4;
if (timehour > 4)
hour += 8;
}
}
}
}
return hour / 8.0;
}