1

我正在尝试计算员工上周的工资。这意味着本周不应该包括在计算中。现在我有 -7 从当前日期检查我的数据。这是我的代码

var currentDate = new Date();
log.info(currentDate)
var requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-7)
var start=Date.parse(requiredDate)
var end=Date.parse(currentDate);
query="taskCreateTimestamp:["+start+" TO "+end+"]";

我的目标是计算周一至周五之间的上周工资。我只用了-7 来检查我的数据。请帮我

4

3 回答 3

0

我在 Jaggeryjs 中使用了以下代码并且对我来说工作正常。我还没有测试,但得到了预期的结果。

 var currentDate = new Date();
    var requiredDate;
    log.info(currentDate)
    var set=currentDate.setHours(0)
    if(currentDate.getDay() == 1)
    {
     requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-7)
    }
    else if(currentDate.getDay() == 2)
    {
     requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-8)
    }
    else if(currentDate.getDay() == 3)
    {
     requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-9)
    }
    else if(currentDate.getDay() == 4)
    {
     requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-10)
    }
    else if(currentDate.getDay() == 5)
    {
     requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-4)
    }
    else if(currentDate.getDay() == 6)
    {
     requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-5)
    }
    else if(currentDate.getDay() == 7)
    {
     requiredDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-6)
    }
    var start=Date.parse(requiredDate)
    log.info("Start-Date["+start+"]")         
    log.info("End----------------------------------------------")
    var currentDate = new Date();
    log.info(currentDate)       
    var end;
    if(currentDate.getDay() == 7)
    {
     end=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-2)
    }
    else if(currentDate.getDay() == 6)
    {
     end=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-1)
    }

    else if(currentDate.getDay() == 5)
    {
     end=Date.parse(currentDate)
     log.info("End Date ["+end+"]")
    }
    else if(currentDate.getDay() == 4)
    {
     end=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-6)
    }
    else if(currentDate.getDay() == 3)
    {
     end=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-5)
    }
    else if(currentDate.getDay() == 2)
    {
     end=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-4)
    }
    else if(currentDate.getDay() == 1)
    {
     end=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()-3)
    }


    end=Date.parse(currentDate);
    log.info("End-Date["+end+"]")         
    query="taskCreateTimestamp:["+start+" TO "+end+"]";
于 2017-02-09T06:30:12.707 回答
0

检查此链接,您可以获得上周的开始日期和结束日期。如果您的数据有时间戳,则将时间戳“00:00:00”附加到开始日期,将“23:59:59”附加到结束日期。

上周在 javascript 中获取

于 2017-01-12T05:47:34.590 回答
0

"(salary / (working days of month)) * (work days of last week)" 上面这行应该是你计算上周工资的公式。因此,您需要一种计算给定日期间隔的工作日的方法。

function getWorkingDays(startDate, endDate){
    var totalWorkingDays= 0;
    var currentDate = startDate;
    while (currentDate <= endDate)  {
        var weekDay = currentDate.getDay();
        if(weekDay != 0 && weekDay != 6) {
            totalWorkingDays++;
        }
        currentDate.setDate(currentDate.getDate()+1); 
    }
    return totalWorkingDays;
}

然后,给出日期并应用公式。

于 2017-01-12T05:50:16.713 回答