Alguien sabe como calcular el número de días laborables entre dos fechas????

merchues
29 de Noviembre del 2007
Holas!!

Tengo un problemilla, tengo que calcular el número de días que hay entre dos fechas, teniendo en cuenta los festivos de la provincia seleccionda (qu los tngo en una tabla).

Para eso tngo que saber el número de días que hay entre esas dos fechas, y quería preguntar si hay alguna manera en jsp o javascript de calcular el número de sabados y domingos que hay entre dos fechas, para luegos asi restarselos a la diferencia de las fechas, y de hay tb restarle tb el numero de días festivos.

Es la manera qu he pesado...alguna otra manera de hacerlo??

Gracias. Un saludito.

Corys90
29 de Noviembre del 2007
te cuento como debes realizar la diferencia y tu lo pasas a java o jsp.

Formula Gral
ff = fecha final y fi = fecha inicial
ndias = ff(d-m-a) - fi(d-m-a)

si dia de ff < dia de fi entonces sumale 30 o 31 dias a dia de ff y resta los dias de las fechas. (si sumas 30 o 31 dias recuerda que debes restarle 1 al mes de ff). de lo contrario, la resta se realiza normalmente.

la misma operacion para restar los meses de ambas fechas. si mes de ff < mes de fi entonces sumale 12 a mes de ff y luego restas ambos meses.(recuerda que debes restar 1 al año).

luego resta los años.

lo ilustro con un ejemplo.

nota : la fecha mas actual es la ff y la vieja es la fi

ff = 15-07-2005
fi = 31-03-2005

como dia de ff es < que la otra, entonces sera
dias = (15 + 30) - 31 // (restale 1 al mes de ff entonces mes de ff es 06). en caso que no sea <, resta normalmente.

luego mes = 06 - 03 y año = 05 - 05
resultado total
dia = 14, mes = 03 y año = 00
total dias = (14 + (03 * 30) + (00 * 365)) = 104 dias

tu restales los dias festivos.

espero te sirva, cualquier cosa me emaileas

Peps
29 de Noviembre del 2007
Para eso coges el calendario y te pones a contar a mano. Así es mas eficiente.

David
29 de Noviembre del 2007
Hola

Pues sólo se me ocurre con un bucle desde la fecha inicial hasta la final.

Cargas un Calendar con la fecha inicial y vas incrementándolo día a día con add(Calendar.DATE, 1). A la vez, y si la comprobación get(Calendar.DAY_OF_WEEK) es distinta de Calendar.SATURDAY y de Calendar.SUNDAY, vas incrementando el contador de días laborables. Luego le restas el número de festivos entre ambas fechas y andando. El problema viene si te mandan calcular el número de días laborables entre la coronación de Tutankamon y la proclamación de la IV República Galáctica, pero tampoco sería demasiado jevi.

Salud

David