Alguien sabe como calcular el número de días laborables entre dos fechas????
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.
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.
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
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
Para eso coges el calendario y te pones a contar a mano. Así es mas eficiente.
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
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
