查找日期并向其添加特定的工作日数

时间:2015-12-14 18:26:48

标签: javascript function datetime if-statement

我正在我们的应用程序中创建一个宏来获取日期字段,为其添加特定数量的工作日,然后将新字段设置为所述日期。我想要周末和假期帐户,以便绕过它们。我写这篇文章的理解是我可以嵌套IF ELSE语句,这是正确的吗? (我是初学者)..此刻,它不起作用。假设,这应该正常吗?

为了解释我的过程,首先它会从字段中获取日期。然后检查它是否为null,如果是,则设置为null。如果没有,继续检查当天是否是假日,然后再次检查第二个假期。如果连续2个假期,请加2天。如果只有1个假期,请加1天。之后,检查该日期是星期六或星期日,如果是,则分别追加1天或2天。最后,将新日期字段设置为myDate。

//create variables for each extended field
var reviewDueBy = los.GetField("ExtendedFields.Appraisal_Review_Due_By");
var receivedDate = los.GetField("ExtendedFields.Appraisal_Received_Date_2");

var fullDate = Date();
var myDate = fullDate.toDateString();

function timestamp(){
fullDate.setDate(receivedDate); //this adds X amount of days
myDate.setDate(myDate.getDate() + 2);

//if receivedDate equals a holiday, then equals second holiday, add 2. else, add 1.
if (reviewDueBy === null || reviewDueBy === undefined) {
    los.SetField(reviewDueBy, null);
} else { 
    if (/jan 1/i.test(myDate) || /may 25/i.test(myDate) || /jul 3/i.test(myDate) || /sep 7/i.test(myDate) || /oct 12/i.test(myDate) || /nov 26/i.test(myDate) || /dec 24/i.test(myDate)) {
        if (/nov 27/i.test(myDate) || /dec 25/i.test(myDate)) {
        myDate.setDate(myDate.getDate() + 2);
        } else { 
        myDate.setDate(myDate.getDate() + 1);
        }
    }
}


//if date equals Sat, then add 2 days. if Sun, add 1.
if (/sat/i.test(myDate)) {
    myDate.setDate(myDate.getDate() + 2);
} else if (/sun/i.test(myDate)) {
    myDate.setDate(myDate.getDate() + 1);
}

timestamp();
los.SetField(reviewDueBy, myDate);

我最初是在没有嵌套的情况下编写的,但这既不是也不合适。

0 个答案:

没有答案