我正在尝试计算上周员工的工资。这意味着本周不应该包括在计算中。现在我从当前日期开始有 -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 来检查我的数据。请帮我<</p>
检查此链接,您可以获得上周的开始日期和结束日期。并将时间戳"00:00:00"附加到开始日期,并将"23:59:59"附加到结束日期(如果数据具有时间戳)。
在 JavaScript 中获取上周
"(工资/(每月工作日))*(上周的工作日)"上行应该是您计算上周工资的公式。因此,您需要一种计算给定日期间隔的工作日的方法。
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;
}
然后,给出日期并应用公式。
我在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+"]";