DateAndTime.DateDiff Método

Definição

Retorna um valor que especifica o número de intervalos de tempo entre dois valores Date.

Sobrecargas

DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)

Subtrai Date1 de Date2 para fornecer um valor longo especificando o número de intervalos de tempo entre os dois Date valores.

DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)

Subtrai Date1 de Date2 para fornecer um valor longo especificando o número de intervalos de tempo entre os dois Date valores.

DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)

Origem:
DateAndTime.vb
Origem:
DateAndTime.vb
Origem:
DateAndTime.vb

Subtrai Date1 de Date2 para dar um valor longo especificando o número de intervalos de tempo entre os dois Date valores.

public static long DateDiff (Microsoft.VisualBasic.DateInterval Interval, DateTime Date1, DateTime Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
static member DateDiff : Microsoft.VisualBasic.DateInterval * DateTime * DateTime * Microsoft.VisualBasic.FirstDayOfWeek * Microsoft.VisualBasic.FirstWeekOfYear -> int64
Public Function DateDiff (Interval As DateInterval, Date1 As DateTime, Date2 As DateTime, Optional DayOfWeek As FirstDayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Optional WeekOfYear As FirstWeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1) As Long

Parâmetros

Interval
DateInterval

Obrigatórios. Um valor de enumeração DateInterval ou uma expressão de cadeia de caracteres que representa o intervalo de tempo que você deseja usar como a unidade da diferença entre Date1 e Date2.

Date1
DateTime

Obrigatórios. O primeiro valor de data/hora que você deseja usar no cálculo.

Date2
DateTime

Obrigatórios. O segundo valor de data/hora que você deseja usar no cálculo.

DayOfWeek
FirstDayOfWeek

Opcional. Um valor escolhido na enumeração de FirstDayOfWeek que especifica o primeiro dia da semana. Se não for especificado, é usado Sunday.

WeekOfYear
FirstWeekOfYear

Opcional. Um valor escolhido na enumeração de FirstWeekOfYear que especifica a primeira semana do ano. Se não for especificado, é usado Jan1.

Retornos

Um valor longo que especifica o número de intervalos de tempo entre dois valores Date.

Exceções

Date1, Date2 ou DayofWeek está fora do intervalo.

Date1 ou Date2 é de um tipo inválido.

Exemplos

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

Dim date2Entered As String = InputBox("Enter a date")

Try
    Dim date2 As Date = Date.Parse(date2Entered)
    Dim date1 As Date = Now

    ' Determine the number of days between the two dates.
    Dim days As Long = DateDiff(DateInterval.Day, date1, date2)

    ' This statement has a string interval argument, and
    ' is equivalent to the above statement.
    'Dim days As Long = DateDiff("d", date1, date2)

    MessageBox.Show("Days from today: " & days.ToString)
Catch ex As Exception
    MessageBox.Show("Invalid Date: " & ex.Message)
End Try

Comentários

Você pode usar a DateDiff função para determinar quantos intervalos de tempo especificados existem entre dois valores de data/hora. 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 final do ano.

Comportamento

  • Tratamento de parâmetros. DateDiff subtrai o valor de Date1 do valor de Date2 para produzir a diferença. Nenhum valor é alterado no programa de chamada.

  • Valores retornados. Como Date1 e Date2 são do Date tipo de dados, eles mantêm valores de data e hora precisos para tiques de 100 nanossegundos no temporizador do sistema. No entanto, DateDiff sempre retorna o número de intervalos de tempo como um Long valor.

    Se Date1 representar uma data e hora posteriores a Date2, DateDiff retornará um número negativo.

  • Intervalos de dia. Se Interval for definido DateInterval.DayOfYearcomo , ele será tratado da mesma forma que DateInterval.Day, porque DayOfYear não é uma unidade significativa para um intervalo de tempo.

  • Intervalos de semana. Se Interval for definido DateInterval.WeekOfYearcomo , o valor retornado representará o número de semanas entre o primeiro dia da semana que Date1 contém e o primeiro dia da semana que contém 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 é menor que sete dias, mas retorna 1 para wY porque há uma diferença de sete dias entre os primeiros dias das respectivas semanas do calendário.

  • Intervalos maiores. Se Interval for definido como DateInterval.Year, o valor retornado será calculado puramente a partir das partes de ano de Date1 e Date2. Da mesma forma, o valor retornado para DateInterval.Month é calculado puramente das partes de ano e mês dos argumentos e para DateInterval.Quarter dos trimestres que contêm as duas datas.

    Por exemplo, ao comparar 31 de dezembro a 1º de janeiro do ano seguinte, DateDiff retorna 1 para DateInterval.Year, DateInterval.Quarterou DateInterval.Month, embora no máximo apenas um dia tenha decorrido.

    Para culturas como japonês que têm várias eras, o DateDiff método não retorna uma diferença em anos se a diferença abranger duas ou mais eras. Em vez disso, você pode calcular a diferença nos valores retornados pela Year propriedade , conforme mostrado no exemplo a seguir: date2.Year - date1.Year.

  • Outros intervalos. Como cada Date valor tem suporte de uma DateTime estrutura, seus métodos oferecem opções adicionais para localizar intervalos de tempo. Por exemplo, você pode usar o Subtract método em qualquer um de seus formulários sobrecarregados: DateTime.Subtract subtrai um TimeSpan de uma Date variável para retornar outro Date valor e DateTime.Subtract subtrai um Date valor para retornar um TimeSpan. Você pode cronometrar um processo para descobrir quantos milissegundos são necessários, como 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 Double = runLength.TotalMilliseconds
    

O Interval argumento pode ter uma das configurações a seguir.

Valor de enumeração Valor da cadeia de caracteres Diferença de unidade de tempo
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" Semana do calendário
DateInterval.Year "yyyy" Year

O DayOfWeek argumento pode ter uma das configurações a seguir.

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 (em conformidade com o padrão ISO 8601, seção 3.17)
FirstDayOfWeek.Tuesday 3 Terça-feira
FirstDayOfWeek.Wednesday 4 Quarta-feira
FirstDayOfWeek.Thursday 5 Quinta-feira
FirstDayOfWeek.Friday 6 Friday
FirstDayOfWeek.Saturday 7 Sábado

O WeekOfYear argumento pode ter uma das configurações a seguir.

Valor de enumeração Valor Descrição
FirstWeekOfYear.System 0 Primeira semana do ano especificada nas configurações do sistema
FirstWeekOfYear.Jan1 1 Semana em que ocorre 1º de janeiro (padrão)
FirstWeekOfYear.FirstFourDays 2 Semana que tem pelo menos quatro dias no ano novo (está em conformidade com o padrão ISO 8601, seção 3.17)
FirstWeekOfYear.FirstFullWeek 3 Primeira semana completa no ano novo

Confira também

Aplica-se a

DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)

Origem:
DateAndTime.vb
Origem:
DateAndTime.vb
Origem:
DateAndTime.vb

Subtrai Date1 de Date2 para fornecer um valor longo especificando o número de intervalos de tempo entre os dois Date valores.

public static long DateDiff (string Interval, object? Date1, object? Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
public static long DateDiff (string Interval, object Date1, object Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
static member DateDiff : string * obj * obj * Microsoft.VisualBasic.FirstDayOfWeek * Microsoft.VisualBasic.FirstWeekOfYear -> int64
Public Function DateDiff (Interval As String, Date1 As Object, Date2 As Object, Optional DayOfWeek As FirstDayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Optional WeekOfYear As FirstWeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1) As Long

Parâmetros

Interval
String

Obrigatórios. Um valor de enumeração DateInterval ou uma expressão de cadeia de caracteres que representa o intervalo de tempo que você deseja usar como a unidade da diferença entre Date1 e Date2.

Date1
Object

Obrigatórios. O primeiro valor de data/hora que você deseja usar no cálculo.

Date2
Object

Obrigatórios. O segundo valor de data/hora que você deseja usar no cálculo.

DayOfWeek
FirstDayOfWeek

Opcional. Um valor escolhido na enumeração de FirstDayOfWeek que especifica o primeiro dia da semana. Se não for especificado, é usado Sunday.

WeekOfYear
FirstWeekOfYear

Opcional. Um valor escolhido na enumeração de FirstWeekOfYear que especifica a primeira semana do ano. Se não for especificado, é usado Jan1.

Retornos

Um valor longo que especifica o número de intervalos de tempo entre dois valores Date.

Exceções

Date1, Date2 ou DayofWeek está fora do intervalo.

Date1 ou Date2 é de um tipo inválido.

Exemplos

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

Dim date2Entered As String = InputBox("Enter a date")

Try
    Dim date2 As Date = Date.Parse(date2Entered)
    Dim date1 As Date = Now

    ' Determine the number of days between the two dates.
    Dim days As Long = DateDiff(DateInterval.Day, date1, date2)

    ' This statement has a string interval argument, and
    ' is equivalent to the above statement.
    'Dim days As Long = DateDiff("d", date1, date2)

    MessageBox.Show("Days from today: " & days.ToString)
Catch ex As Exception
    MessageBox.Show("Invalid Date: " & ex.Message)
End Try

Comentários

Você pode usar a DateDiff função para determinar quantos intervalos de tempo especificados existem entre dois valores de data/hora. 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 final do ano.

Comportamento

  • Tratamento de parâmetros. DateDiff subtrai o valor de Date1 do valor de Date2 para produzir a diferença. Nenhum valor é alterado no programa de chamada.

  • Valores retornados. Como Date1 e Date2 são do Date tipo de dados, eles mantêm valores de data e hora precisos para tiques de 100 nanossegundos no temporizador do sistema. No entanto, DateDiff sempre retorna o número de intervalos de tempo como um Long valor.

    Se Date1 representar uma data e hora posteriores que Date2, DateDiff retornará um número negativo.

  • Intervalos de dia. Se Interval estiver definido DateInterval.DayOfYearcomo , ele será tratado da mesma forma que DateInterval.Day, porque DayOfYear não é uma unidade significativa para um intervalo de tempo.

  • Intervalos de semana. Se Interval for definido como DateInterval.WeekOfYear, o valor retornado representará o número de semanas entre o primeiro dia da semana que Date1 contém e o primeiro dia da semana que Date2contém . 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 é menor que sete dias, mas retorna 1 para wY porque há uma diferença de sete dias entre os primeiros dias das respectivas semanas de calendário.

  • Intervalos maiores. Se Interval for definido como DateInterval.Year, o valor retornado será calculado puramente a partir das partes do ano de Date1 e Date2. Da mesma forma, o valor retornado para DateInterval.Month é calculado puramente a partir das partes de ano e mês dos argumentos e para DateInterval.Quarter dos trimestres que contêm as duas datas.

    Por exemplo, ao comparar 31 de dezembro a 1º de janeiro do ano seguinte, DateDiff retorna 1 para DateInterval.Year, DateInterval.Quarterou DateInterval.Month, embora no máximo um dia tenha decorrido.

    Para culturas como japonês que têm várias eras, o DateDiff método não retorna uma diferença em anos se a diferença abrange duas ou mais eras. Em vez disso, você pode calcular a diferença nos valores retornados pela Year propriedade , conforme mostrado no exemplo a seguir: date2.Year - date1.Year.

  • Outros intervalos. Como cada Date valor é suportado por uma DateTime estrutura, seus métodos oferecem opções adicionais para encontrar intervalos de tempo. Por exemplo, você pode usar o Subtract método em qualquer um de seus formulários sobrecarregados: DateTime.Subtract subtrai um TimeSpan de uma Date variável para retornar outro Date valor e DateTime.Subtract subtrai um Date valor para retornar um TimeSpan. Você pode cronometrar um processo para descobrir quantos milissegundos são necessários, como 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 Double = runLength.TotalMilliseconds
    

O Interval argumento pode ter uma das configurações a seguir.

Valor de enumeração Valor da cadeia de caracteres Diferença de unidade de tempo
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" Semana do calendário
DateInterval.Year "yyyy" Year

O DayOfWeek argumento pode ter uma das configurações a seguir.

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 (está em conformidade com o ISO standard 8601, seção 3.17)
FirstDayOfWeek.Tuesday 3 Terça-feira
FirstDayOfWeek.Wednesday 4 Quarta-feira
FirstDayOfWeek.Thursday 5 Quinta-feira
FirstDayOfWeek.Friday 6 Friday
FirstDayOfWeek.Saturday 7 Sábado

O WeekOfYear argumento pode ter uma das configurações a seguir.

Valor de enumeração Valor Descrição
FirstWeekOfYear.System 0 Primeira semana do ano especificada nas configurações do sistema
FirstWeekOfYear.Jan1 1 Semana em que ocorre 1º de janeiro (padrão)
FirstWeekOfYear.FirstFourDays 2 Semana que tem pelo menos quatro dias no ano novo (está em conformidade com o padrão ISO 8601, seção 3.17)
FirstWeekOfYear.FirstFullWeek 3 Primeira semana completa do ano novo

Confira também

Aplica-se a