Devolve uma Variante (Longo) que especifica o número de intervalos de tempo entre duas datas especificadas.
Consultar alguns exemplosSintaxe
DifData(intervalo, data1, data2 [, primeirodiadasemana] [,
primeirasemanadoano] )
A sintaxe da função DifData tem os seguintes argumentos (argumento: valor que fornece informações a uma acção, evento, método, propriedade, função ou procedimento.):
Definições
O argumento (argumento: valor que fornece informações a uma acção, evento, método, propriedade, função ou procedimento.) intervalo tem as seguintes definições:
| Definição |
Descrição |
| yyyy |
Ano |
| q |
Trimestre |
| m |
Mês |
| y |
Dia do ano |
| d |
Dia |
| w |
Dia da semana |
| ww |
Semana |
| h |
Hora |
| n |
Minuto |
| s |
Segundo |
O argumento primeirodiadasemana tem as seguintes definições:
| Constante |
Valor |
Descrição |
| vbUseSystem |
0 |
Utilizar a definição NLS de API. |
| vbSunday |
1 |
Domingo (predefiniçã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 |
| Constante |
Valor |
Descrição |
| vbUseSystem |
0 |
Utilizar a definição NLS de API. |
| vbFirstJan1 |
1 |
Começa na semana em que 1 de Janeiro ocorre (predefinição). |
| vbFirstFourDays |
2 |
Começa na primeira semana que tem, pelo menos, quatro dias no novo ano. |
| vbFirstFullWeek |
3 |
Começa na primeira semana completa do ano. |
Observações
Pode utilizar a função DifData para determinar quantos intervalos de tempo especificados existem entre duas datas. Por exemplo, poderá utilizar a função DifData para calcular o número de dias entre duas datas ou o número de semanas entre hoje e o final do ano.
Para calcular o número de dias entre a data1 e a data2, pode utilizar o Dia do ano ("y") ou Dia ("d"). Quando o intervalo é Dia da semana ("w"), a função DifData devolve o número de semanas entre as duas datas. Se a data1 corresponder a uma Segunda-feira, a função DifData conta o número de Segundas-feiras até à data2. Conta a data2, mas não a data1. No entanto, se o intervalo for Semana ("ww"), a função DifData devolve o número de semanas do calendário entre as duas datas. Conta o número de Domingos entre a data1 e a data2. A função DifData conta a data2 se corresponder a um Domingo; mas não conta a data1, mesmo que corresponda a um Domingo.
Se a data1 se referir a um período posterior à data2, a função DifData devolve um número negativo.
O argumento primeirodiadasemana afecta os cálculos que utilizam os símbolos de intervalo "w" e "ww".
Se a data1 ou a data2 forem um literal de data (literal de data: qualquer sequência de caracteres com um formato válido com o sinal cardinal (#) no princípio e no fim. Os formatos válidos incluem o formato de data especificado pelas definições regionais de código ou o formato de data universal.), o ano especificado torna-se parte permanente dessa data. No entanto, se a data1 ou a data2 estiverem entre aspas (" ") e omitir o ano, é inserido o ano actual no código sempre que a expressão data1 ou data2 forem avaliadas. Desta forma, é possível escrever o código para que possa ser utilizado em anos diferentes.
Ao comparar 31 de Dezembro com 1 de Janeiro do ano imediatamente a seguir, a função DifData para Ano ("aaaa") devolve 1, mesmo que só tenha passado um dia.
Nota Para a data1 e data2, se a definição da propriedade do Calendário for Gregoriano, a data fornecida tem de estar no formato Gregoriano. Se o calendário for Hijri, a data fornecida tem de ser Hijri.
Exemplos
Utilizar a função DifData numa expressão É possível utilizar a função DifData onde quer que seja possível utilizar expressões. Por exemplo, suponha que tem um formulário que utiliza para preencher encomendas de clientes. Na tabela Encomendas, tem um campo denominado ReceberAntesDe que contém a data até à qual os clientes têm de receber a encomenda. Poderá utilizar a função DifData com uma caixa de texto no formulário para fazer apresentar o número de dias que faltam até que a encomenda tenha de ser expedida.
Assumindo que são necessários dez dias para expedir qualquer encomenda, deverá definir a propriedade Origem do Controlo da caixa de texto da seguinte forma:
=DifData(“d”, Agora(), [Encomendas].[ReceberAntesDe])-10
Quando abrir o formulário na vista de formulário, a caixa de texto irá apresentar o número de dias que faltam até que a encomenda tenha de ser expedida. Se restarem menos de 10 dias, o número na caixa de texto será negativo, indicando o número de dias de atraso da encomenda caso seja expedida de imediato.
Utilizar a função DifData em código VBA
Nota Os exemplos que se seguem demonstram a utilização desta função num módulo do Visual Basic for Applications (VBA). Para mais informações sobre como trabalhar com VBA, seleccione Referência para Programadores na lista pendente junto a Procurar e introduza um ou mais termos na caixa de procura.
Este exemplo utiliza a função DifData para apresentar o número de dias entre uma determinada data e o dia de hoje.
Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg