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:
Y bien, tengo la siguiente funciónReto 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 *
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!