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