DataHoraBom dia computêros, quando estamos desenvolvemos um sistema provavelmente em algum momento precisaremos trabalhar com datas e/ou horas, este artigo tem como objetivo ajudar os usuários a como trabalharem com as funções as funções para manipulação de datas que o ASP dispõe.

Antes de mais nada recomendo que leia o artigo sobre Session.LCID para que possamos dar prosseguimento ao tutorial sem maiores problemas sobre configurações regionais e padrões de datas.

Obs: Vale lembrar que a data e a hora impressa pelo ASP trata-se do servidor e não da máquina cliente, já que as páginas ASP são manipuladas no servidor!

  • Retornando a data e a hora do servidor

Date() – Imprimindo a data atual

O retorno da data do servidor ocorre através da função Date().

Response.Write(Date())

Time() – Imprimindo a hora atual

O retorno da hora do servidor ocorre através da função Time().

Response.Write(Time())

Now() – Imprimindo a data e a hora atual

Embora possamos usar em conjunto as funções Date() e Time() para imprimirmos a data e a hora atual do servidor não é necessário, pois o ASP dispõe de uma função que faz exatamente isto, chamada Now().

Response.Write(Now())

Agora que já sabemos como retornar a data atual do sistema, vamos começar a manipulá-la de acordo com as nossas necessidades:

  • Manipulação de Datas

Day(date) – Retornando somente o dia:

Response.Write(Day(Date()))

Month(date) – Retornando somente o mês:

Response.Write(Month(Date()))

Year(date) – Retornando somente o ano:

Response.Write(Year(Date()))

MonthName(month[,abbreviate]) – Retornando o nome do mês

Esta função tem uma peculiaridade, para sabermos o nome do mês devemos informar um número inteiro correspondente ao mês, como por exemplo, 1 para janeiro, 2 para fevereiro, 3 para Março e assim por diante. Como a função Month() retorna este número estamos utilizando-a para que siga a idéia do mês atual do servidor.

Response.Write(MonthName(Month(Date())))

Para o nome do mês abreviado devemos indicar o segundo parâmetro (abreviate) como True na função MonthName()

Response.Write(MonthName(Month(Date()),True))

Weekday(date[,firstdayofweek]) – Retornando o dia da semana

Esta função irá retornar o dia da semana (em inteiro) de acordo com a data informada como parâmetro.

Response.Write(WeekDay(Date()))

WeekdayName(weekday[,abbreviate[,firstdayofweek]]) – Retornando o nome do dia da semana

Como a função MonthName() ela necessita do parâmetro inteiro para exibir o nome do dia da semana

Response.Write(WeekDayName(WeekDay(Date())))

Nesta função também podemos retornar o nome do dia da semana abreviado

Response.Write(WeekDayName(WeekDay(Date()),true))
  • Manipulação de Horas:

Hour(time) – Retornando somente a hora

Response.Write(Hour(Time()))

Minute(time) – Retornando somente o minuto

Response.Write(Minute(Time()))

Second(time) – Retornando somente os segundos

Response.Write(Second(Time()))
  • IsDate(expression) - Verificando se uma expressão é uma data
Response.Write(isDate("18/12/2009")) 'retorna true
Response.Write(isDate("32/12/2009")) 'retorna false
Response.Write(isDate("Computêro!")) 'retorna false
  • CDate(date)Convertendo String em data e/ou hora
Response.Write(CDate("18/12/2009"))

Response.Write(CDate("18:12"))
  • DateAdd(interval,number,date)Criando uma nova data a partir de outra

Para entendermos melhor vamos começar com o terceiro parâmetro, date, é a data a qual é a referência para a criação.

O primeiro parâmetro interval indica qual é o intervalor que criaremos para a nova data, seus possíveis valores seguem a lista abaixo:

yyyy – Year
q – Quarter
m – Month
y – Day of year
d – Day
w – Weekday
ww – Week of year
h – Hour
n – Minute
s – Second

O segundo parâmetro, number, refere-se a quantidade do intervalo que iremos criar.

Exemplos:

Retornando a data de 28 dias a partir da data atual

Response.Write(DateAdd("d",28,Date()))

Retornando a data de 30 semanas a partir da data atual

Response.Write(DateAdd("ww",30,Date()))

Retornando a hora de 5 horas atrás a partir da hora atual

Response.Write(DateAdd("h",-5,Time()))
  • DateDiff(interval,date1,date2) – Descobrindo o intervalo entre datas

Esta função irá retornar o intervalo entre duas datas, lembrando que o parâmetro interval segue o modelo do exemplo anterior.

Descobrindo quantos dias de vida tem o blog:

Response.Write(DateDiff("d",CDate("25/03/2009"),date()))

Descobrindo quantas horas de vida tem o blog:

Response.Write(DateDiff("h",CDate("25/03/2009"),date()))
  • FormatDateTime(date,format) – Fomatando os valores da data

Já sabemos como criar, manipular, converter, verificar, mas e como formatamos???

A função FormatDateTime() está aqui para isso, indicaremos a data que queremos formatar e qual será o seu formato.

Constante Valor Descrição
vbGeneralDate 0 Exibe a data no formato dd/mm/yyyy. Se utilizar o comando Now() a hora será exibida após a data. – Ex: 26/8/2009 10:22:44
vbLongDate 1 Exibe a data utilizando um formato longo. Dia da semana, dia , nome do mês, ano – Ex: quarta-feira, 26 de agosto de 2009
vbShortDate 2 Exibe a data em um fomato curto dd/mm/yyyy – Ex:26/8/2009
vbLongTime 3 Exibe a hora no formato  hh:mm:ss PM/AM – Ex:10:24:30
vbShortTime 4 Exibe a hora usando 24horas no formato: hh:mm – Ex: 10:25

Referência: http://www.w3schools.com/VBscript/vbscript_ref_functions.asp

É isso aí computêros! Qualquer dúvida… Comentem!