Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Dias habiles Auxilio!!!!

Estas en el tema de Dias habiles Auxilio!!!! en el foro de SQL Server en Foros del Web. Buenas noches ante todo.. Tengo un grave problema por el cual me kiero ahorcar y es que quiero sumarle a una fecha dias habiles osea ...
  #1 (permalink)  
Antiguo 13/08/2012, 21:53
 
Fecha de Ingreso: junio-2012
Mensajes: 44
Antigüedad: 12 años, 4 meses
Puntos: 0
Dias habiles Auxilio!!!!

Buenas noches ante todo..

Tengo un grave problema por el cual me kiero ahorcar
y es que quiero sumarle a una fecha dias habiles
osea sin tener en cuenta sabado y domingo

ejem : 10/08/2012 + 30 dias habiles(sin sabados y domingos)

espero me puedan ayudar ya q estoy al borde de la muerte!!
  #2 (permalink)  
Antiguo 14/08/2012, 05:06
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 4 meses
Puntos: 40
Información Respuesta: Dias habiles Auxilio!!!!

Si se trata de 30 dias es muy facil porque son exactamente 6 semanas (cada semana = 5 dias de trabajo).
El problema es con 32 dias por ejemplo que son 32/5=6 semanas completas y 32%5=2 dia mas que en Viernes (10/08/2012 es Viernes) deben pasarnos al proximo Martes..

La soulución es (en caso de 32 dias) restar de 10/08/2012 4 dias para llegar al previo Lunes,
y añadir 32+4=36 dias que son 36/5=7 semanas y 36%5=1 dias mas..

Mientras tanto hay que tomar en cuenta que en paises latinos @@DateFirst=1 que significa que Lunes es el primer dia de la semana (Lunes=1, Domingo=7),
y en paises "ingleses" @@DateFirst=7 y Domingo es el primer dia de la semana (Domingo=1, Lunes=2).

Finalmente la solución (esto es lo mas importante y no todo el bla-bla..):
Código SQL:
Ver original
  1. DECLARE @D DATE='20120810',
  2.         @N INT=30;
  3. SELECT  DateAdd(DAY,-DatePart(WeekDay,@D)+(9-@@DateFirst)%7+(@N+DatePart(WeekDay,@D)-(9-@@DateFirst)%7)/5*7+(@N+DatePart(WeekDay,@D)-(9-@@DateFirst)%7)%5,@D);
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 14/08/2012, 08:47
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Dias habiles Auxilio!!!!

Como siempre, la sugerencia es crear tu propio calendario regional, ya que si en México el dia 21 de Marzo no se labora, tal vez en otros paises si.
__________________
MCTS Isaias Islas

Etiquetas: dias, habiles
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:59.