Função DateDiff (Visual Basic)
Retorna um Long valor que especifica o número de intervalos de time entre os dois Date valores.
Public Overloads Function DateDiff( _
ByVal Interval As [ DateInterval | String ], _
ByVal Date1 As DateTime, _
ByVal Date2 As DateTime, _
Optional ByVal DayOfWeek As FirstDayOfWeek = FirstDayOfWeek.Sunday, _
Optional ByVal WeekOfYear As FirstWeekOfYear = FirstWeekOfYear.Jan1 _
) As Long
Parâmetros
Interval
Obrigatório.DateInterval valor de enumeração ou String expressão de seqüência de caracteres que representa o intervalo de time que você deseja usar sistema autônomo a unidade de diferença entre Date1 e Date2.Date1
Obrigatório.Date.A primeira data / valor temporal você deseja usar no cálculo.Date2
Obrigatório.Date.O segundo valor de data/time que você deseja usar no cálculo.DayOfWeek
Opcional.Um valor escolhido da enumeração FirstDayOfWeek que especifica o primeiro dia da semana.Se não especificado, FirstDayOfWeek.Sunday é usado.WeekOfYear
Opcional.Um valor escolhido da enumeração FirstWeekOfYear que especifica o primeiro dia da semana.Se não especificado, FirstWeekOfYear.Jan1 é usado.
Configurações
O argumento Interval pode ter uma das seguintes configurações.
Valor de enumeração |
Valor de seqüência de caracteres |
Unidade de time diferença |
---|---|---|
DateInterval.Day |
"d" |
Dia |
DateInterval.DayOfYear |
"y" |
Dia |
DateInterval.Hour |
"h" |
Hora |
DateInterval.Minute |
"n" |
Minuto |
DateInterval.Month |
"m" |
Mês |
DateInterval.Quarter |
"q" |
Trimestre |
DateInterval.Second |
"s" |
Segundo |
DateInterval.Weekday |
"w" |
Semana |
DateInterval.WeekOfYear |
"ww" |
Calendário semanal |
DateInterval.Year |
"aaaa" |
Ano |
O argumento DayOfWeek pode ter uma das seguintes configurações.
Valor de enumeração |
Valor |
Descrição |
---|---|---|
FirstDayOfWeek.System |
0 |
Primeiro dia da semana especificado nas configurações do sistema |
FirstDayOfWeek.Sunday |
1 |
Domingo (padrão) |
FirstDayOfWeek.Monday |
2 |
Segunda-feira (compatível com padrão 8601, Seção 3.17 ISO) |
FirstDayOfWeek.Tuesday |
3 |
Terça-feira |
FirstDayOfWeek.Wednesday |
4 |
Quarta-feira |
FirstDayOfWeek.Thursday |
5 |
Quinta-feira |
FirstDayOfWeek.Friday |
6 |
Sexta-feira |
FirstDayOfWeek.Saturday |
7 |
Sábado |
O argumento WeekOfYear pode ter uma das seguintes configurações.
Valor de enumeração |
Valor |
Descrição |
---|---|---|
FirstWeekOfYear.System |
0 |
Primeira semana do ano especificado nas configurações do sistema |
FirstWeekOfYear.Jan1 |
1 |
Semana em que 1 º de janeiro ocorre (padrão) |
FirstWeekOfYear.FirstFourDays |
2 |
Semana que tenha pelo menos quatro dias no novo ano (obedece padrão ISO 8601, seção 3.17 ) |
FirstWeekOfYear.FirstFullWeek |
3 |
Primeira semana completa do ano novo |
Exceções
Tipo de exceção |
Número de erro |
Condição |
---|---|---|
De inválidoInterval. |
||
Date1, Date2, ou DayofWeek está fora do intervalo. |
||
Date1 ou Date2 é de um tipo inválido. |
Ver a coluna " número de erro " se você estiver atualizando aplicativos Visual Basic 6.0 que usam manipulação de erros não estruturada.(Você pode comparar o número do erro com a Propriedade do Número (Erro de objeto).) Entretanto, quando for possivel, você pode considerar substituir tal controle de erro por Visão Geral sobre a Manipulação Estruturada de Exceções para o Visual Basic.
Comentários
Você pode usar o DateDiff função para determinar quantos intervalos de time especificados existem entre dois valores de data/time. 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 no participante do ano.
Comportamento
**Treatment of Parameters.**DateDiff subtracts the value of Date1 from the value of Date2 to produce the difference.Nenhum valor é alterado no programa de chamada.
Valores de retorno. Porque Date1 e Date2 da Date tipo de dados, eles Isenção valores de data e time precisão de 100 nanossegundos ticks no cronômetro do sistema. No entanto, DateDiff sempre retorna o número de intervalos de time sistema autônomo uma Long valor.
If Date1 representa uma data e time em que posterior Date2, DateDiff Retorna um número negativo.
Intervalos de dia. If Interval é conjunto para DateInterval.DayOfYear, ele será tratado o mesmo que DateInterval.Day, pois DayOfYear não é uma unidade significativa para um intervalo de time.
Intervalos de semana. If Interval é conjunto para DateInterval.WeekOfYear, o valor retornado representa o número de semanas entre o primeiro dia da semana que contém Date1 e que contém o primeiro dia da semana Date2. O exemplo a seguir mostra como isso produz resultados diferentes de DateInterval.Weekday.
' The following statements set datTim1 to a Thursday ' and datTim2 to the following Tuesday. Dim datTim1 As Date = #1/4/2001# Dim datTim2 As Date = #1/9/2001# ' Assume Sunday is specified as first day of the week. Dim wD As Long = DateDiff(DateInterval.Weekday, datTim1, datTim2) Dim wY As Long = DateDiff(DateInterval.WeekOfYear, datTim1, datTim2)
No exemplo anterior, DateDiff Retorna 0 para wD porque a diferença entre as duas datas é menos de sete dias, mas ela retorna 1 para wY porque há uma diferença de sete dias entre os primeiros dias dos respectivo semanas do calendário.
Cuidado: Quando a parte do time Date1 é maior do que de Date2 e Interval é definido como DateInterval.WeekOfYear, o DateDiff função retorna um valor que seja uma menor que o valor correto.
Intervalos maiores. If Interval é definido como DateInterval.Year, o valor retornado é calculado puramente de partes de ano Date1 e Date2. Da mesma forma, o valor retornado para DateInterval.Month é calculado puramente partir as partes de ano e mês dos argumentos e para DateInterval.Quarter de trimestres contendo as duas datas.
Por exemplo, ao comparar 31 de dezembro a 1 º de janeiro do ano seguinte, DateDiff Retorna 1 para DateInterval.Year, DateInterval.Quarter, ou DateInterval.Month, mesmo que no máximo apenas um dia tenha se passado.
Outros intervalos. Desde a cada Date dá suporte ao valor de um DateTime estrutura, seus métodos oferecem opções adicionais na localização de intervalos de time. Por exemplo, você pode usar o Subtract método em qualquer um dos seus formulários sobrecarregados: DateTime.Subtract Subtrai um TimeSpan de um Date variável para retornar a outro Date valor, e DateTime.Subtract Subtrai um Date valor a retornar uma TimeSpan. Você pode time um processo para descobrir quantos milissegundos, ele obtém, sistema autônomo mostra o exemplo a seguir.
Dim startTime As Date = Now ' Run the process that is to be timed. Dim runLength As Global.System.TimeSpan = Now.Subtract(startTime) Dim millisecs As Integer = runLength.Milliseconds
Exemplo
Este exemplo usa o DateDiff função para exibir o número de dias entre hoje e determinada data.
Dim firstDate, msg As String
Dim secondDate As Date
firstDate = InputBox("Enter a date")
secondDate = CDate(firstDate)
msg = "Days from today: " & DateDiff(DateInterval.Day, Now, secondDate)
MsgBox(msg)
Requisitos
Namespace: Microsoft.VisualBasic
**Módulo:**DateAndTime
Assembly: Visual Basic Runtime Library (em Microsoft.VisualBasic.dll)
Consulte também
Referência
Função DatePart (Visual Basic)
Função dia da semana (Visual Basic)