JSFiddle - React, Tailwind, and code Playground

by Michel Plungjan

HTML

<form>
    From:<br/><input name="txtLeaveFromDate" value="2011-07-01" /><br />
    To:<br/><input name="txtLeaveToDate" value="2011-07-21" /><br />
    <input id="calc" type="button" value="Working days" /><br/>
    <input name="txtLeaveTotalDay" value="" readonly="readonly" /><br />
</form>

JavaScript

document.getElementById("calc").onclick=function() {
   fillToDate(this.form);
}
function fillToDate(frmLeaveApp) {

    var fromdate = frmLeaveApp.elements['txtLeaveFromDate'];
    var todate = frmLeaveApp.elements['txtLeaveToDate'];
    var result = frmLeaveApp.elements['txtLeaveTotalDay'];
    if(!fromdate || !todate || !result) {
        return;
    }

    var from = new Date(fromdate.value.replace(/\-/g,"/"));
    var to = new Date(todate.value.replace(/\-/g,"/"));

    // brute force seems the quickest to find
    var res = 0;
    var aDay = 24*60*60*1000;
    for (var i = from.getTime(), n=to.getTime();i < n; i+=aDay) {
      var d = new Date(i).getDay();
      if (d!=0 && d !=6) res++;
    }
    result.value = res;
}