我编写了一个代码,当一个人拿走的叶子数超过5个工作日时,它会升旗。但是,当我们在中间有周末时,它并不会升起国旗。假设某人在23,24休假,然后在27,28和29休假。由于25和26是周末,因此工具不计算在内。有人可以帮助我如何在这里检查周末日期,并将包含周末日期的值推送为“是”吗?
function PrepareReport(reportData) {
var vacationData = [];
var dayValuesStr = '';
var dayValuesArray = [];
if ($("#ddlfromYear").val() == $("#ddltoYear").val()) {
count = parseInt($("#ddltoMonth").val()) - parseInt($("#ddlfromMonth").val());
}
else {
count = 12 - parseInt($("#ddlfromMonth").val()) + parseInt($("#ddltoMonth").val());
}
//val.ResourceID FullName EnterpriseID WorkOrder Domain Totalhours
vacationData.push(reportData.FullName);
vacationData.push(reportData.EnterpriseID);
vacationData.push(reportData.WorkOrder);
vacationData.push(reportData.Domain);
if (reportData.IsOffshore == 1) {
vacationData.push('Offshore');
}
else {
vacationData.push('Onshore');
}
vacationData.push(reportData.TOTALHOURS);
var counter = 0;
FlagCounterLastVal = 0;
vacationData.push("No");
for (var monthNum = 0; monthNum <= count; monthNum++) {
dayValuesStr = reportData['MONTH' + monthNum];
if (dayValuesStr) {
dayValuesArray = dayValuesStr.split(',');
var countArray = dayValuesArray.length - 1;
$.each(dayValuesArray, function (key, val) {
if (val.endsWith('.00'))//round off values
{
if (parseInt(val) == 0) {
vacationData.push('-');
counter = 0; // resetting counter to 0 for non-consecutive days
}
else {
if (FlagCounterLastVal > 0) {
counter = FlagCounterLastVal;
}
counter++;
vacationData.push(parseInt(val));
****if (counter >= 5 && FlagCounterLastVal == 0) {
var index = vacationData.indexOf("No");
vacationData[index] = "Yes";
}****
if (key == (countArray) && count > 0) { // vacation taken at the month ends
FlagCounterLastVal = counter;
}
}
}
else {
vacationData.push(val);
}
});
}
}
return vacationData;
}
答案 0 :(得分:1)
您可以使用getDay。
var day = yourDateObject.getDay();
var isWeekend = (day === 6) || (day === 0);
6 =星期六,0 =星期日
答案 1 :(得分:0)
我不会在这里共享代码,因为它是数据结构,希望您多想一点,然后先尝试一下。如果仍然无法编写代码,那么我会在您的代码中为您提供帮助。
我要做的是有2个数组,两个数组都将被排序,这将有助于搜索。 1.所有周末都有约会。 // WeekendArr 2.留下员工的日期。 // leaveArr
步骤 1.从leaveArr中删除所有weekendArr日期。 2.检查LeaveArr是否有连续的日期大于5或您想要的日期。 3.如果大于5,则为该员工升旗。
现在,您需要确定用于维护员工离职,employeeID和请假标志的数据结构。
希望这足以确定代码。