Foros del Web » Programando para Internet » ASP Clásico »

Calcular cantidad de dias lunes de fecha uno a fecha dos

Estas en el tema de Calcular cantidad de dias lunes de fecha uno a fecha dos en el foro de ASP Clásico en Foros del Web. necesito sumar la cantidad de dias LUNES que hay de una fecha a otra. A alguien se le ocurre una idea de como hacerlo? mi ...
  #1 (permalink)  
Antiguo 14/08/2009, 09:50
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
Calcular cantidad de dias lunes de fecha uno a fecha dos

necesito sumar la cantidad de dias LUNES que hay de una fecha a otra.
A alguien se le ocurre una idea de como hacerlo?


mi primera idea fue hacerlo con SQL , pero se me quedo corto el conocimiento. Estoy pideando ayuda por esos lados tb, pero los foros del SQL son menos visitados que la tumba de mi abuelita.

asi es que me decidí a hacerlo en ASP.

alguna idea???

ando medio tonto hoy
  #2 (permalink)  
Antiguo 14/08/2009, 10:49
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Calcular cantidad de dias lunes de fecha uno a fecha dos

Acabo de hacer eso en 2 minutos, te pone cada uno de los lunes de una fecha a otra, seguro lo podrás optimizar y adecuar a lo que ocupas, perdón por las prisas:

Código:
DECLARE @FechaIni datetime,
        @FechaFin datetime,
        @FechaActual datetime,
        @FechaLunes datetime,
        @NumLunes int
SET @FechaIni = '01/01/2009'
SET @FechaFin = GETDATE()
SET @FechaActual = @FechaIni
SET @NumLunes = 0
WHILE @FechaActual < @FechaFin
BEGIN
    SELECT @FechaLunes = DATEADD(wk, DATEDIFF(wk,0,@FechaActual), 0)    
    IF @FechaLunes > @FechaIni
    BEGIN
       SET @NumLunes = @NumLunes + 1
       PRINT CAST(@NumLunes as varchar) + ') '+ CAST(@FechaLunes as varchar)
    END
    SELECT @FechaActual = DATEADD(Week, 1, @FechaActual) 
END
Saludos

Última edición por Myakire; 14/08/2009 a las 10:58
  #3 (permalink)  
Antiguo 14/08/2009, 10:57
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
De acuerdo Respuesta: Calcular cantidad de dias lunes de fecha uno a fecha dos



MUCHAS GRACIAS!!!!

te mando miles de KARMA de inmediato


  #4 (permalink)  
Antiguo 14/08/2009, 11:00
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Calcular cantidad de dias lunes de fecha uno a fecha dos

ups!, si he sabido me hunbiera tomado el tiempo de hacerte una versión ASP también

En el copy-paste se me habían pasado la declaración de variables, ya lo edité
  #5 (permalink)  
Antiguo 15/08/2009, 14:12
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Respuesta: Calcular cantidad de dias lunes de fecha uno a fecha dos

Hola Masters. Ayer estaba haciendo un script para ello pero no lo terminé y el archivo me quedó en la oficina. Anyway... ¿Alguien puede explicar qué es lo que hace el script de Myakire? Realmente no lo estoy entendiendo y me interesaría hacerlo ;)
__________________
...___...
  #6 (permalink)  
Antiguo 15/08/2009, 20:29
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Calcular cantidad de dias lunes de fecha uno a fecha dos

Esta muy sencilla, amigo, verás, supongo que lo único difícil son las intrucciones dateadd y datediff, pero igual explicaré todo el ciclo:

Cita:
--Ciclo que recorrerá cada una de las semanas entre la fecha inicial y final
WHILE @FechaActual < @FechaFin
BEGIN
/*
DATEDIFF(wk,0,@FechaActual) regresa el número de semanas entre el inicio del contador de SQL Sever y la semana actual, esto es por utilizar el datepart Week o wk, luego para obtener el lunes de la semana actual se le pide a SQL que regrese el semana entre la fecha inicial del SQL (indicada por el cero) y el total de semanas que han transcurrido, como el datepart es week nuevamente esto nos traerá la fecha inicial de esa semana
*/
SELECT @FechaLunes = DATEADD(wk, DATEDIFF(wk,0,@FechaActual), 0)
/*
Si la fecha obtenida esta dentro del rango inicial entonces (en mi ejemplo, el 1 de enero esta a mediados de semana, entonces el lunes de esa semana no esta dentro del rango, este if hace que no se cuente.
*/
IF @FechaLunes > @FechaIni
BEGIN
SET @NumLunes = @NumLunes + 1
PRINT CAST(@NumLunes as varchar) + ') '+ CAST(@FechaLunes as varchar)
END
/*
@fechaActual es variable que se incrementara con semanas, que solo nos interesa el número de inicios de semana, esto se hace hasta que nos salgamos del rango final y voalá
*/
SELECT @FechaActual = DATEADD(Week, 1, @FechaActual)
END
Saludos
  #7 (permalink)  
Antiguo 17/08/2009, 17:11
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Calcular cantidad de dias lunes de fecha uno a fecha dos

En el foro de BD en el post original, me encontraron un error, dejo la liga por si alguien le interesa.

Saludos
  #8 (permalink)  
Antiguo 19/08/2009, 10:50
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Respuesta: Calcular cantidad de dias lunes de fecha uno a fecha dos

Había olvidado este tema hasta hoy. Gracias por la explicación master
__________________
...___...
  #9 (permalink)  
Antiguo 19/08/2009, 11:56
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
Respuesta: Calcular cantidad de dias lunes de fecha uno a fecha dos

estuvieron buenisimas las clases de sql :)

gracias !!
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 04:09.