Как рассчитать зарплату за последнюю неделю в JavaScript?

Я пытаюсь рассчитать зарплату прошлой недели сотрудников. Это означает, что текущая неделя не должна быть включена в расчет. Прямо сейчас у меня есть -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, чтобы проверить только мои данные. пожалуйста, помогите мне

3 ответа

Проверьте эту ссылку, вы можете получить даты начала и окончания прошлой недели. и добавьте отметку времени "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+"]";
Другие вопросы по тегам