Days calculation excluding weekends

Community Beginner ,
Mar 17, 2018 Mar 17, 2018

Copy link to clipboard

Copied

Hi

I made a pdf form in acrobat pro XI. In the file I need to calculate total days excluding weekends. I went through the community and come up with the below code. This code counts Saturday and Sunday as weekends.

// get the end date value

var Date1 = this.getField("From").value;

// get the start date value

var Date2 = this.getField("To").value;

var dDate2 = util.scand("dd/mm/yyyy H:MM:SS", Date2 + " 0:00:00");

var dDate1 =util.scand("dd/mm/yyyy H:MM:SS", Date1 + " 0:00:00");

  1. event.value = calcBusinessDays(dDate1, dDate2);

function calcBusinessDays(dDate1, dDate2) { // input given as Date objects

    var iWeeks, iDateDiff, iAdjust = 0;

    if (dDate2 < dDate1) return -1; // error code if dates transposed

    var iWeekday1 = dDate1.getDay(); // day of week

    var iWeekday2 = dDate2.getDay();

    iWeekday1 = (iWeekday1 == 0) ? 7 : iWeekday1; // change Sunday from 0 to 7

    iWeekday2 = (iWeekday2 == 0) ? 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((dDate2.getTime() - dDate1.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

  }

My problem is that, I need to count Thursday and Friday as weekends. I have very little knowledge in javascript.

Any help would be greatly appreciated.

Regards

TOPICS
Acrobat SDK and JavaScript, Windows

Views

318

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
no replies

Have something to add?

Join the conversation