Estoy trabajando en un programa que muestra el número de días laborables del mes pasado hasta hoy. Por ejemplo, hoy es 9 de septiembre, por lo que el programa debe mostrar el número 7, ya que ha habido un fin de semana hasta ese día. Si hoy fuera 20 de septiembre, el programa debería mostrar el número 14, ya que ha habido 3 fines de semana hasta esa fecha. (Con fines de semana me refiero sólo a sábado y domingo).
Este es el código que tengo actualmente:
date = new Date(); let dayD = date.getDate(); let newDay = dayD - 2; // Temporarily done manually as I don't have the code to automatically do it yet console.log(newDay);He visto varias preguntas similares, pero ninguna que fuera lo suficientemente similar o que realmente me ayudara. Entonces, ¿cómo podría contar los días del mes pasado hasta hoy, pero excluyendo los fines de semana (solo días laborables)?
Puede crear una serie de fechas y verificar el día deseado (que no sea sábado ni domingo):
const workdaysCount = () => [...new Array(new Date().getDate())] .reduce((acc, _, monthDay) => { const date = new Date() date.setDate(1+monthDay) ![0, 6].includes(date.getDay()) && acc++ return acc }, 0) console.log(workdaysCount())