En ASP realizamos una página que calcula los dias que faltan para una fecha y diga algo como -Faltan 38 días para el dia D-
Vamos a construir un script que calcule los días que faltan para llegar a una fecha cualquiera. Para que la página web pueda informar al usuario diciendo algo como "Faltan 28 días para mi cumpleaños".
Este script lo podríamos utilizar en una página web de un evento, feria o cualquier otro suceso. Resulta anticuado anticuado dar este ejemplo, pero podríamos haber hecho una página que dijese "Faltan 280 días para el año 2000"
Como estamos trabajando con scripts del servidor, la fecha sobre la cual se calculará los días que falta será la fecha del sistema servidor. Esto tiene como inconveniente que la hora del servidor puede ser ligeramente distinta que la del ordenador del cliente, si los dos sistemas se encuentran en países con franjas horarias distintas. Podríamos hacer un script parecido en Javascript de cliente y tomaría la fecha del cliente, que puede ser útil en algunos casos. Simplemente lo señalamos aquí porque es interesante que lo sepa el lector.
Averiguamos las fechas
Para realizar nuestro cálculo empezamos por averiguar la fecha actual del servidor y la fecha del evento futuro.
fecha_actual = Now
fecha_futura = CDate("1/1/2025")
En estas dos líneas de código obtenemos primero la hora actual asignando a la variable fecha_actual el valor de la variable de sistema Now, que contiene la fecha del servidor.
Posteriormente obtenemos la fecha futura a partir de una cadena de caracteres, convirtiéndola a un objeto Date (fecha) con la función CDate(). En el ejemplo obtenemos la fecha correspondiente a el 1 de enero de 2025, podría ser cualquier otra.
Función DateDiff
Existe una función de Visual Basic Script muy útil para el ejercicio. Es la función DateDiff, que calcula la diferencia entre dos fechas y puede hacer el cálculo en días, horas, minutos, segundos, etc.
La sintaxis es la siguiente:
DateDiff(intervalo, fecha1, fecha2)
Donde intervalo es la unidad en la que deseamos hacer el cálculo "s" para segundos, "d" para días, "h" para las horas, "m" para meses, "yyyy" para años...
Los parámetros fecha1 y fecha2 son las dos fechas involucradas en la resta.
Podemos acceder a una descripción más detallada de esta función en la Librería MSDN de Microsoft.
Calculamos los días
La utilización de la función DateDiff con las fechas que habíamos obtenido previamente es muy simple.
dias_restantes = DateDiff ("d", fecha_actual, fecha_futura)
Con esto ya hemos obtenido el valor buscado y podríamos imprimirlo en la página directamente.
Todo Junto
Finalmente vamos a ver todo el ejercicio de una vez en una página ASP.
<html>
<head>
<title>Calculo de los días que faltan para una fecha</title>
</head>
<body>
<%
fecha_actual = Now
fecha_futura = CDate("1/1/2025")
dias_restantes = DateDiff ("d", fecha_actual, fecha_futura)
%>
Faltan <%=dias_restantes%> días para el año 2025
</body>
</html>
Podemos ver este script en funcionamiento.
Hasta aquí llega este taller de ASP que también nos puede servir para aprender a calcular otro tipo de diferencias, por ejemplo los segundos que faltan para una fecha, los meses, o cualquier otra cosa. Sólo habría que utilizar la función DateDiff pasándole otro intervalo por parámetro.
Este script lo podríamos utilizar en una página web de un evento, feria o cualquier otro suceso. Resulta anticuado anticuado dar este ejemplo, pero podríamos haber hecho una página que dijese "Faltan 280 días para el año 2000"
Como estamos trabajando con scripts del servidor, la fecha sobre la cual se calculará los días que falta será la fecha del sistema servidor. Esto tiene como inconveniente que la hora del servidor puede ser ligeramente distinta que la del ordenador del cliente, si los dos sistemas se encuentran en países con franjas horarias distintas. Podríamos hacer un script parecido en Javascript de cliente y tomaría la fecha del cliente, que puede ser útil en algunos casos. Simplemente lo señalamos aquí porque es interesante que lo sepa el lector.
Averiguamos las fechas
Para realizar nuestro cálculo empezamos por averiguar la fecha actual del servidor y la fecha del evento futuro.
fecha_actual = Now
fecha_futura = CDate("1/1/2025")
En estas dos líneas de código obtenemos primero la hora actual asignando a la variable fecha_actual el valor de la variable de sistema Now, que contiene la fecha del servidor.
Posteriormente obtenemos la fecha futura a partir de una cadena de caracteres, convirtiéndola a un objeto Date (fecha) con la función CDate(). En el ejemplo obtenemos la fecha correspondiente a el 1 de enero de 2025, podría ser cualquier otra.
Función DateDiff
Existe una función de Visual Basic Script muy útil para el ejercicio. Es la función DateDiff, que calcula la diferencia entre dos fechas y puede hacer el cálculo en días, horas, minutos, segundos, etc.
La sintaxis es la siguiente:
DateDiff(intervalo, fecha1, fecha2)
Donde intervalo es la unidad en la que deseamos hacer el cálculo "s" para segundos, "d" para días, "h" para las horas, "m" para meses, "yyyy" para años...
Los parámetros fecha1 y fecha2 son las dos fechas involucradas en la resta.
Podemos acceder a una descripción más detallada de esta función en la Librería MSDN de Microsoft.
Calculamos los días
La utilización de la función DateDiff con las fechas que habíamos obtenido previamente es muy simple.
dias_restantes = DateDiff ("d", fecha_actual, fecha_futura)
Con esto ya hemos obtenido el valor buscado y podríamos imprimirlo en la página directamente.
Todo Junto
Finalmente vamos a ver todo el ejercicio de una vez en una página ASP.
<html>
<head>
<title>Calculo de los días que faltan para una fecha</title>
</head>
<body>
<%
fecha_actual = Now
fecha_futura = CDate("1/1/2025")
dias_restantes = DateDiff ("d", fecha_actual, fecha_futura)
%>
Faltan <%=dias_restantes%> días para el año 2025
</body>
</html>
Podemos ver este script en funcionamiento.
Hasta aquí llega este taller de ASP que también nos puede servir para aprender a calcular otro tipo de diferencias, por ejemplo los segundos que faltan para una fecha, los meses, o cualquier otra cosa. Sólo habría que utilizar la función DateDiff pasándole otro intervalo por parámetro.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...