Muy buenos días amigos foreros.
La razón que escribo aquí es por una medida desesperada (
el tiempo y presión me come, si no fuese por eso, ya hubiera obtenido mi respuesta).
Estoy presentando un test, dónde una de las pruebas dice:
Cita: Reto de programación - Programa una función que calcule los días hábiles (lunes a viernes) entre la fecha A y la fecha B *
Y bien, tengo la siguiente función
Código Javascript
:
Ver original/*
@param (string) YYYY/MM/DD [fecha menor]
@param (string) YYYY/MM/DD [fecha mayor]
*/
function diasHabiles (d1, d2) {
d1 = new Date(d1); d2 = new Date(d2);
dif = d2.getDate() - d1.getDate();
var weekends = 0;
for (x = 0; x < dif; x++) {
d1.setDate( d1.getDate() + 1 );
if (d1.getDay() == (6 || 0)) {
weekends++;
}
}
return (dif - weekends);
}
Y funciona perfectamente entre 2 fechas que son del mismo mes. El problema está en poner 2 fechas de diferentes meses, ya que, al parecer, al restar 2 fechas, javascript sólo resta los días, es decir, si tienes una fecha del
7 de agosto y le restas el
29 de julio, te dará de diferencia 22 días (29 - 7), lo cuál obviamente no es correcto, ya que serían 9 días.
Alguien sabe a qué se debe éste comportamiento y si existe una forma de restar días entre diferentes meses? se los agradecería bastante!