title: Calculate Business Days in Month with Javascript
body: <p>I'm trying to do 2 things. </p>
  
  <ol>
  <li>Calculate number of business days to date in a given month based on current day (i.e. today is March 7, 2012 therefore, 5 business days have passed)</li>
  <li>Calculate number of business days to go in a given month based on current day (i.e. Today is March 7, 2012 therefore, there are 17 business days left this month.</li>
  </ol>
  
  <p>Any help here would be much appreciated.</p>
  
  <p>EDIT:
  This is what I've tried so far: </p>
  
  <pre><code>function isWeekday(year, month, day) {var day = new Date(year, month, day).getDay();return day !=0 &amp;&amp; day !=6;}
  function getWeekdaysInMonth(month, year) {var days = daysInMonth(month, year);var weekdays = 0;for(var i=0; i&lt; days; i++) {if (isWeekday(year, month, i+1)) weekdays++;}return weekdays;}
  function calcBusinessDays(dDate1, dDate2) {
      var iWeeks, iDateDiff, iAdjust = 0;
      if (dDate2 &lt; 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 &gt; 5) &amp;&amp; (iWeekday2 &gt; 5)) iAdjust = 1;  // adjustment if both days on weekend
      iWeekday1 = (iWeekday1 &gt; 5) ? 5 : iWeekday1;    // only count weekdays
      iWeekday2 = (iWeekday2 &gt; 5) ? 5 : iWeekday2;
      // calculate differnece in weeks (1000mS * 60sec * 60min * 24hrs * 7 days = 604800000)
      iWeeks = Math.floor((dDate2.getTime() - dDate1.getTime()) / 604800000)
      if (iWeekday1 &lt;= 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
  }
  </code></pre>
  
  <p>Not quite sure how to put it all together to get business days passed and business days to go.</p>