JSFiddle - React, Tailwind, and code Playground

by dimshik

HTML

<script src="http://momentjs.com/downloads/moment-with-locales.min.js"></script>
<div class="today"></div>
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>

JavaScript

var addWorkdays = function(moment, days) {
  var increment = days / Math.abs(days);
  var date = moment.clone().add(Math.floor(Math.abs(days) / 5) * 7 * increment, 'days');
  var remaining = days % 5;
  while (remaining != 0) {
    date.add(increment, 'days');
    if (date.isoWeekday() !== 6 && date.isoWeekday() !== 7)
      remaining -= increment;
  }
  return date;
};

var today = moment();
$('.today').html('Today: ' + today.format('YYYY-MM-DD'));

$('.a').html('In 8 working days from today: ' + moment(addWorkdays(today, 1)).format('YYYY-MM-DD'));

$('.b').html('In -3 working days from today: ' + moment(addWorkdays(today, -3)).format('YYYY-MM-DD'));

$('.c').html('In -1 working days from today: ' + moment(addWorkdays(today, -1)).format('YYYY-MM-DD'));