Написать javascript для Adobe Acrobat Pro Forms Calculate, чтобы вычесть даты, чтобы узнать количество рабочих дней. - PullRequest
0 голосов
/ 25 октября 2019

Я настраиваю форму для заполнения в Adobe Acrobat Pro DC. У меня есть два поля даты, одно показывает дату начала, а другое показывает дату окончания финансового года. Мне нужен javascript, который я могу ввести в сценарий ТАМОЖЕННОГО РАСЧЕТА на вкладке РАСЧЕТ СВОЙСТВА ПОЛЕ ТЕКСТА в формах в Adobe, чтобы при вводе даты в обоих полях дата начала вычиталась из даты окончания финансового годаи верните количество рабочих дней между ними. Суббота и воскресенье - нерабочие дни, и праздничные дни не имеют значения, так как все сотрудники получают оплату за эти дни.

Я зашел на этот форум (и несколько других), и в конце концов нашел этот скрипт, но он делаетне работает для меня.

// get the end date value
var Date4 = this.getField("Date3").value;
// get the start date value
var Date3 = this.getField("Date4").value;
var dDate3 = util.scand("dd/mmm/yyyy", Date3);
var dDate4 =util.scand("dd/mmm/yyyy", Date4);
event.value = calcBusinessDays(dDate4, dDate3);
if(event.value == 0) event.value = "";
function calcBusinessDays(dDate4, dDate3) { // input given as Date 
objects
    var iWeeks, iDateDiff, iAdjust = 0;
    if (dDate3 < dDate4) return -1; // error code if dates transposed
    var iWeekday1 = dDate4.getDay(); // day of week
    var iWeekday2 = dDate3.getDay();
    iWeekday1 = (iWeekday1 == 4) ? 7 : iWeekday1; // change Sunday from 0 
to 7
    iWeekday2 = (iWeekday2 == 5) ? 7 : iWeekday2;
    if ((iWeekday1 > 5) && (iWeekday2 > 5)) iAdjust = 1; // adjustment if 
both days on weekend
    iWeekday1 = (iWeekday1 > 5) ? 5 : iWeekday1; // only count weekdays
    iWeekday2 = (iWeekday2 > 5) ? 5 : iWeekday2;
    // calculate differnece in weeks (1000mS * 60sec * 60min * 24hrs * 7 
days = 604800000)
    iWeeks = Math.floor((dDate3.getTime() - dDate4.getTime()) / 
604800000)
     if (iWeekday1 <= iWeekday2) {
      iDateDiff = (iWeeks * 5) + (iWeekday2 - iWeekday1)
    } else {
      iDateDiff = ((iWeeks + 1) * 5) - (iWeekday1 - iWeekday2)
    }
    iDateDiff -= iAdjust // take into account both days on weekend
return (iDateDiff + 1); // add 1 because dates are inclusive


  }

Я не получаю никаких результатов, ничего не происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...