我创建了一个日历,该日历应该允许Legal客户计算何时需要提交特定文档。业务规则并不难,但我一直发现自己在圈子里转转。
“日历”点击必须采用选定的日期,并且;
我已经掌握了以下内容,但我似乎陷入了循环
var tempDueDate;
var DueDate;
var holidays = ["2019-06-24, 2019-07-01"];
//targetDate is the Date from the DatePicker
//Days = the number of Days specific to each Document Type, 15 for this ex.
tempDueDate = moment(targetDate).add(days, "days").format("YYYY-MM-DD");
GetDueDateFromHolidaysAndWeekends(tempDueDate, holidays);
function GetDueDateFromHolidaysandWeekends(tempDueDate, holidays) {
var final = true;
var Checked = CheckIfIsHoliday(tempDueDate, holidays);
var summaryDueDate = $("#summaryDueDate");
if (Checked === false) {
//This means tempDueDate is NOT a holiday OR a Weekend
summaryDueDate.html(DueDate);
} else
{
while (Checked === true) {
tempDueDate = moment(tempDueDate).add(1, "days").format("YYYY-MM-DD");
Checked = CheckIfIsHoliday(tempDueDate, holidays);
}
summaryDueDate.html(DueDate);
}
function CheckIfIsHoliday(tempDueDate, holidays) {
var bool;
//This does NOT appear to be able to determine Weekdays
if (moment(tempDueDate).day(7) || moment(tempDueDate).day(6))
{
bool = true;
}
if (bool !== true) {
//check if this day is a Holiday, if it is, start over
if (jQuery.inArray(tempDueDate, holidays) === -1) {
bool = false;
DueDate = tempDueDate;
console.log(DueDate);
} else {
bool = true;
}
}
return bool;
}
}
在此示例中,选择6月1日将返回6月16日,但这是一个周末,因此返回的日期应为17日。选择6月7日返回6月23日,这是一个周末,因此应在6月24日抵消,但这是一个假期,因此应在6月25日抵消。
任何提示将不胜感激。