Função DateDiff

Retorna uma Variant (Long) especificando o número de intervalos de tempo entre duas datas especificadas.

Sintaxe

DateDiff(intervalo, data1, data2, [ primeirodiadasemana, [ primeirasemanadoano ]] )

A sintaxe da função DateDiff tem os seguintes argumentos nomeados:

Parte Descrição
intervalo Obrigatório. Obrigatório. A expressão da cadeia de caracteres que é o intervalo de tempo usado para calcular a diferença entre a data1 e a data2.
data1, data2 Obrigatório; Variant (Data). As duas datas que você deseja usar no cálculo.
primeirodiadasemana Opcional. Uma constante que especifica o primeiro dia da semana. Se não especificado, será usado o domingo.
primeirasemanadoano Opcional. Uma constante que especifica a primeira semana do ano. Se não especificada, será usada a semana em que ocorre 1º de janeiro.

Configurações

O argumentode intervalo tem essas configurações:

Configuração Descrição
aaaa Ano
t Trimestre
m Mês
a Dia do ano
d Dia
s Dia da semana
ss Semana
h Hora
m Minuto
s Segundo

O argumento primeirodiadasemana tem as seguintes configurações:

Constante Valor Descrição
vbUseSystem 0 Use a configuração da API NLS.
vbSunday 1 Domingo (padrão)
vbMonday 2 Segunda-feira
vbTuesday 3 Terça-feira
vbWednesday 4 Quarta-feira
vbThursday 5 Quinta-feira
vbFriday 6 Sexta-feira
vbSaturday 7 Sábado

O argumento firstweekofyear tem as seguintes configurações:

Constant Valor Descrição
vbUseSystem 0 Use a configuração da API NLS.
vbFirstJan1 1 Comece com a semana em que ocorre 1 de janeiro (padrão).
vbFirstFourDays 2 Comece com a primeira semana que tiver pelo menos quatro dias no novo ano.
vbFirstFullWeek 3 Comece com a primeira semana completa do ano.

Comentários

Use a função DateDiff para determinar quantos intervalos de tempo especificados existem entre duas datas. Por exemplo, você pode usar DateDiff para calcular o número de dias entre duas datas, ou o número de semanas entre hoje e o fim do ano.

Para calcular o número de dias entre a data1 e a data2, você pode usar o dia do ano ("a") ou o dia ("d"). Quando o intervalo for o dia da semana ("s"), DateDiff retorna o número de semanas entre duas datas. Se data1 for uma segunda-feira, DateDiff conta o número segundas-feiras até a data2. Contabiliza a data2 mas não a data1.

No entanto, se o intervalo for Semana ("ss"), a função DateDiff retorna o número de semanas do calendário entre as duas datas. Contabiliza o número de domingos entre a data1 e a data2. DateDiff contabiliza a data2 se ocorrer em um domingo, mas não contabiliza a Data1, mesmo que ocorra em um domingo.

Quando a data1 se refere a uma data posterior à data2, a função DateDiff retorna um número negativo. O argumento primeirodiadasemana afeta cálculos que usam os símbolos de intervalo "s" e "ss".

Se data1 ou data2 for uma literal de data, o ano especificado se torna uma parte permanente dessa data. No entanto, se data1 ou data2 estiver entre aspas duplas ("") e omitir o ano, o ano atual é inserido no seu código sempre que a expressão data1 oudata2 for avaliada. Isso possibilita escrever um código que pode ser usado em anos diferentes.

Ao comparar 31 de dezembro a 1 de janeiro do ano imediatamente posterior, a função DateDiff para Ano ("aaaa") retorna 1, mesmo que tenha decorrido apenas 1 dia.

Observação

Para data1 e data2, quando a configuração da propriedade Calendário é Gregoriano, a data fornecida deve ser Gregoriana. Quando o calendário é Islâmico, a data fornecida deve ser Islâmica.

Exemplo

Este exemplo usa a função DateDiff para exibir o número de dias entre a data determinada e a atual.

Dim TheDate As Date    ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.