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