Cálculo de dias que faltam para uma data

Vamos construir um script que calcule os dias que faltam para chegar a uma data qualquer. Para que a página web possa informar ao usuário dizendo algo como “Faltam 28 dias para meu aniversário”.

Poderíamos utilizar este script em uma página web de um evento, feira ou qualquer outro acontecimento. É meio antiquadro dar este exemplo, mas poderíamos ter feito uma página que dissesse “Faltam 280 dias para o ano 2000”

Como estamos trabalhando com scripts do servidor, a data sobre a qual se calculará os dias que faltam será a data do sistema servidor. Isto tem como inconveniente que a hora do servidor pode ser ligeiramente diferente que a do computador do cliente, se os dois sistemas se encontram em países com fuso-horário distintos. Poderíamos fazer um script parecido em Javascript de cliente e tomaria a data do cliente, que pode ser útil em alguns casos. Simplesmente o assinalamos aqui porque é interessante que o leitor saiba.

Averiguamos as datas

Para realizar nosso cálculo começamos averiguando a data atual do servidor e a data do evento futuro.

data_atual = Now
data_futura = CDate(“1/1/2025”)

Nestas duas linhas de código obtemos primeiro a hora atual atribuindo à variável data_atual o valor da variável de sistema Now, que contém a data do servidor.

Posteriormente obtemos a data futura a partir de uma cadeia de caracteres, convertendo-a em um objeto Date (data) com a função CDate(). No exemplo obtemos a data correspondente ao 1 de janeiro de 2025, poderia ser qualquer outra.

Função DateDiff

Existe uma função de Visual Basic Script muito útil para o exercício. É a função DateDiff, que calcula a diferença entre duas datas e pode fazer o cálculo em dias, horas, minutos, segundos, etc.

A sintaxe é a seguinte:

DateDiff(intervalo, data1, data2)

Onde intervalo é a unidade na qual desejamos fazer o cálculo “s” para segundos, “d” para dias, “h” para as horas, “m” para meses, “yyyy” para anos…

Os parâmetros data1 e data2 são as duas datas envolvidas na subtração.

Podemos acessar a uma descrição mais detalhada desta função na library MSDN de Microsoft.

Calculamos os dias

A utilização da função DateDiff com as datas que havíamos obtido previamente é muito simples.

dias_restantes = DateDiff (“d”, data_atual, data_futura)

Com isto já obtivemos o valor buscado e poderíamos imprimi-lo na página diretamente.

Tudo Junto

Finalmente, vamos ver todo o exercício de uma vez em uma página ASP.

<html>
<head>
<title>Cálculo dos dias que faltam para uma data</title>
</head>
<body>

<%
data_atual = Now
data_futura = CDate(“1/1/2025”)

dias_restantes = DateDiff (“d”, data_atual, data_futura)
%>

Faltam <%=dias_restantes%> dias para o ano 2025

</body>
</html>

Até aqui chega este workshop de ASP que também pode nos servir para aprender a calcular outro tipo de diferenças, por exemplo, os segundos que faltam para uma data, os meses, ou qualquer outra coisa. Só haveria que utilizar a função DateDiff passando outro intervalo por parâmetro.

Fonte: http://www.criarweb.com/artigos/488.php

Deixe um comentário