Calcular numero de días laborales entre 2 fechas
Queridos amigos:
Tengo el siguiente problema:
Desde el teclado un usuario ingresara 2 fechas en el formato "dd/mm/aaaa" y necesito poder contar el numero de días laborales (lunes a viernes) que hay entre esas 2 fechas.
Hasta ahora solo se contar el numero total de días que hay entre 2 fechas pero no se como poder restarle los sabados y domingos para obtener solo los días laborales.
Por ejemplo:
Fecha 1: 29/09/2004
Fecha 2: 05/10/2004
El resultado correcto seria: 5 días laborales
Espero alguien pueda ayudarme.
Saludos
Tengo el siguiente problema:
Desde el teclado un usuario ingresara 2 fechas en el formato "dd/mm/aaaa" y necesito poder contar el numero de días laborales (lunes a viernes) que hay entre esas 2 fechas.
Hasta ahora solo se contar el numero total de días que hay entre 2 fechas pero no se como poder restarle los sabados y domingos para obtener solo los días laborales.
Por ejemplo:
Fecha 1: 29/09/2004
Fecha 2: 05/10/2004
El resultado correcto seria: 5 días laborales
Espero alguien pueda ayudarme.
Saludos
Hola, Andrea
La función getDay() te devuleve el día de la semana (0=domingo, 7=sábado)
Por tanto, yo haría algo así como:
n1 = contar el nº de días (restar fechas 2 y 1).
Divide n1 entre 7 y quédate con la parte entera = n2.
Resta los sábados y domingos correspondientes a las semanas enteras transcurridas: n3 = n1- 2*n2
Suma a la fecha 1 las semanas (día1 + n2*7); recorre desde el día resultante hasta la fecha 2, sumando uno sólo si getDay() no es 7 ni 0.
Siento no poder concretarlo más pero no tengo práctica con las funciones de fecha ni la forma de entrarlas. Espero que con estas ideas puedas resolverlo.
La función getDay() te devuleve el día de la semana (0=domingo, 7=sábado)
Por tanto, yo haría algo así como:
n1 = contar el nº de días (restar fechas 2 y 1).
Divide n1 entre 7 y quédate con la parte entera = n2.
Resta los sábados y domingos correspondientes a las semanas enteras transcurridas: n3 = n1- 2*n2
Suma a la fecha 1 las semanas (día1 + n2*7); recorre desde el día resultante hasta la fecha 2, sumando uno sólo si getDay() no es 7 ni 0.
Siento no poder concretarlo más pero no tengo práctica con las funciones de fecha ni la forma de entrarlas. Espero que con estas ideas puedas resolverlo.
