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

DateDiff entre fecha actual y variable

Estas en el tema de DateDiff entre fecha actual y variable en el foro de ASP Clásico en Foros del Web. Hola amigos, tengo un problemilla con las fechas (¿Quien no lo ha tenido alguna vez, jeje?) Quiero avisar del cumpleaños, lo típico, cuantos dias faltan ...
  #1 (permalink)  
Antiguo 05/12/2005, 07:28
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 6 meses
Puntos: 1
DateDiff entre fecha actual y variable

Hola amigos, tengo un problemilla con las fechas (¿Quien no lo ha tenido alguna vez, jeje?)


Quiero avisar del cumpleaños, lo típico, cuantos dias faltan y todo eso.
Recojo la fecha de nacimiento en 3 campos: dia, més y año.

Luego los extraigo de la base de datos.

Este es el código:

<%
Dim fecha_actual,fecha_cumple,dias_restantes,com

fecha_actual = Now()
fecha_cumple = CDate(Nac_dia&"/"&Nac_mes&"/"&Nac_ano)
dias_restantes = DateDiff ("d", fecha_actual,fecha_cumple)
%>

El problema es que arroja resultados que no corresponden, el código "bueno" es este:


DateDiff ("d", Now(),"10/12/1979")

Pero el problema es que aqui utilizo como segunda fecha una variable, y claro se ve que la función precisa de las comillas para comparar bien las fechas. Ese es el problema.

OSea:

DateDiff ("d", Now(),fecha_cumple)

Como la variable fecha_cumple no lleva las comillas, no hay forma. He probado con esto:


DateDiff ("d", Now(),"'"&fecha_cumple&"'")

pero dá error String

En fin, que algo tan simple me trae de cabeza, pa haberme matao!!

SOS - SOS - SOS -SOS -SOS
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #2 (permalink)  
Antiguo 05/12/2005, 09:41
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 4 meses
Puntos: 1
1 - Estas seguro que CDate esta haciendo lo correcto? Convierte esto Nac_dia&"/"&Nac_mes&"/"&Nac_ano en una fecha valida.

2 - Porque tenes que convertirlo a Fecha, simplemente conatenas los valores y lo guardas en una variable string.

3 - Estás seguro que la contenación no da error, los campos son de tipo string?

Hasta el momento esto todo lo que se me ocurre.

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
  #3 (permalink)  
Antiguo 05/12/2005, 09:53
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 6 meses
Puntos: 1
He probado con decenas de combinaciones, incluyendo hasta modificar el orden de los valores del campo de fecha del servidor, por si acaso (En formato: Año/Més/Día), pero nada. No ha forma.

Lo lógico es que si yo simplemente pongo:

fecha_cumple = Nac_dia&"/"&Nac_mes&"/"&Nac_ano
dias_restantes = DateDiff ("d", fecha_cumple,Now())

Debería de funcionar perfectamente, pues el valor que arroja en dias_restantes es: 14973

sin embargo si simplemente pongo:

dias_restantes = DateDiff ("d", Now(),"12/12/1980")

funciona a la primera

Los valores que componen la variable de la fecha fecha_cumple son de una tabla de una base de datos,son campos numéricos de MySQL. Si hago un simple: response.write (fecha_cumple), escribe la fecha de forma correcta.


Ahí queda eso, por favor si alguien conoce a Bill Gates, se lo diga para que me lo explique...

Ayudaaaaaaaaaaaaaaaaaa!!
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #4 (permalink)  
Antiguo 05/12/2005, 09:57
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 18 años, 7 meses
Puntos: 3
para sacar la diferencia de dias que faltan para un cumpleaños prueba usando esto

dim fec1
fecha_actual = Now()
fec1 = Year(now())
if Cint(Nac_mes) < month(now()) then
fec1 = fec1 + 1
end if
fecha_cumple = CDate(Nac_dia&"/"&Nac_mes&"/"&fec1)
dias_restantes = abs(DateDiff ("d", fecha_cumple,fecha_actual))
response.write dias_restantes
  #5 (permalink)  
Antiguo 05/12/2005, 10:00
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 4 meses
Puntos: 1
Te cuento que si analizas la función te darás cuenta que el valor arrojado es más correcto.

Donde sacas que está mal?

De ese valor deduzco que la persona tiene 40 años, de no ser así avisame

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
  #6 (permalink)  
Antiguo 05/12/2005, 10:16
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 6 meses
Puntos: 1
monkyta, sencillamente, GRACIAS!! Resuelto!!

No sabes cuanto te lo agradezco, me he leído todo lo escrito sobre la función DateDiff y no sabía que coño estaba pasando, me traía de cabeza.

Tienes una cerveza pagada cuando quieras!!
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
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 21:49.