Contar días hábiles entre dos fechas

Beginner

This tutorial is from open-source community. Access the source code

Introducción

En este laboratorio, exploraremos un programa de JavaScript que cuenta el número de días hábiles entre dos fechas dadas. El programa utiliza una matriz y el método reduce para iterar sobre el rango de fechas dado, comprobando si cada fecha es un día hábil e incrementando el recuento en consecuencia. Sin embargo, debe tenerse en cuenta que este programa no tiene en cuenta los días festivos oficiales.

Contar días hábiles entre dos fechas

Para contar los días hábiles entre dos fechas, siga estos pasos:

  1. Abra la Terminal/SSH y escriba node para comenzar a practicar la codificación.
  2. Utilice Array.from() para crear una matriz con una longitud igual al número de días entre startDate y endDate.
  3. Utilice Array.prototype.reduce() para iterar sobre la matriz, comprobando si cada fecha es un día hábil e incrementando count.
  4. Actualice startDate con el día siguiente en cada bucle utilizando Date.prototype.getDate() y Date.prototype.setDate() para avanzarla un día.
  5. Tenga en cuenta que esta función no tiene en cuenta los días festivos oficiales.

Aquí está el código para implementar esto:

const countWeekDaysBetween = (startDate, endDate) =>
  Array.from({ length: (endDate - startDate) / (1000 * 3600 * 24) }).reduce(
    (count) => {
      if (startDate.getDay() % 6 !== 0) count++;
      startDate = new Date(startDate.setDate(startDate.getDate() + 1));
      return count;
    },
    0
  );

Puede utilizar el siguiente código para probar la función:

countWeekDaysBetween(new Date("Oct 05, 2020"), new Date("Oct 06, 2020")); // 1
countWeekDaysBetween(new Date("Oct 05, 2020"), new Date("Oct 14, 2020")); // 7

Resumen

¡Felicitaciones! Has completado el laboratorio Contar días hábiles entre dos fechas. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.