JSFiddle - React, Tailwind, and code Playground

by Joe Saad

JavaScript

function getIncrement(year, month) {
  let date = new Date('' + year + '-' + month + '-1');
//  console.log('date: ',date.getDay())
  let increment = date.getDay() > 0 ? date.getDay() - 2 : 5;
  return increment;
}

function getDate(week, dayWeek,
  year, month, increment) {
  let date;
  let day = week * 7 + dayWeek - increment;
  if (day <= 0) {
    let fechaAuxiliar = new Date('' + year + '-' + month + '-1');
    date = new Date(fechaAuxiliar.getTime() + ((day - 1) * 24 * 60 * 60 * 1000));
  } else {
    date = new Date('' + year + '-' + month + '-' + day);
    if (isNaN(date.getTime())) {
      let fechaAuxiliar = new Date('' + year + '-' + month + '-1');
      date = new Date(fechaAuxiliar.getTime() + ((day + 1 - increment) * 24 * 60 * 60 * 1000));
    }
    return date;
  }
}

console.log(getIncrement(2019, 2))
console.log(getDate(2, 4, 2019, 1, 3));