Share via


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

ArgumentException

5

De inválidoInterval.

ArgumentException

5

Date1, Date2, ou DayofWeek está fora do intervalo.

InvalidCastException

13

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 DateAdd (Visual Basic)

Função DatePart (Visual Basic)

Função Day (Visual Basic)

Função Format

Propriedade agora

Função dia da semana (Visual Basic) 

Função de ano (Visual Basic)

Tipo de dados Data (Visual Basic)

DateTime

TimeSpan