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

Como saber si Fecha es EL TERCER LUNES DEL MES MAYO

Estas en el tema de Como saber si Fecha es EL TERCER LUNES DEL MES MAYO en el foro de SQL Server en Foros del Web. Hola, ¿sabeis como puedo saber si una @FechaDada (datetime) cumple el requisito de ser por ejemplo EL TERCER LUNES DEL MES MAYO ? Tengo las ...
  #1 (permalink)  
Antiguo 05/03/2007, 10:00
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Como saber si Fecha es EL TERCER LUNES DEL MES MAYO

Hola, ¿sabeis como puedo saber si una @FechaDada (datetime) cumple el requisito de ser por ejemplo EL TERCER LUNES DEL MES MAYO?

Tengo las variables: @REPETICION, @DIASEMANA y @MES que en el ejemplo serian 3 (tercer), 1 (lunes) y 5 (mayo)

Para @FechaDada puedo conocer el dia de la semana (DATEPART dw), el mes (MONTH), y la semana dentro del mes (restando la semana en el año (DATEPART wk) con la semana en el año del ultimo dia del mes anterior)...

Pero resulta que el primer lunes del mes no tiene porque coincidir en la primera semana del mes....

A las malas se me ocurre hacer un bucle restando 7 a la @FechaDada y guardando el numero de restas, cuando cambie de mes con la resta, el numero de restas realizadas me indica el numero del dia en el mes..

¿Alguna idea mejor?
Muchas gracias
  #2 (permalink)  
Antiguo 05/03/2007, 11:21
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: Como saber si Fecha es EL TERCER LUNES DEL MES MAYO

Qué pasa si al primero de mayo le sumas 3 semanas (2 en realidad, puesto que ya estás en la primera), y al resultado le vas sumando de un día en un día hasta encontrar el lunes. En el peor de los casos harás 6 bucles (como es precisamente el caso de Mayo 2007).
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 08:11.