DateAndTime.DateDiff Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna um valor que especifica o número de intervalos de tempo entre dois valores Date
.
Sobrecargas
DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear) |
Subtrai |
DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear) |
Subtrai |
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 deDate1
do valor deDate2
para produzir a diferença. Nenhum valor é alterado no programa de chamada.Valores retornados. Como
Date1
eDate2
são doDate
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 umLong
valor.Se
Date1
representar uma data e hora posteriores aDate2
,DateDiff
retornará um número negativo.Intervalos de dia. Se
Interval
for definidoDateInterval.DayOfYear
como , ele será tratado da mesma forma queDateInterval.Day
, porqueDayOfYear
não é uma unidade significativa para um intervalo de tempo.Intervalos de semana. Se
Interval
for definidoDateInterval.WeekOfYear
como , o valor retornado representará o número de semanas entre o primeiro dia da semana queDate1
contém e o primeiro dia da semana que contémDate2
. O exemplo a seguir mostra como isso produz resultados diferentes deDateInterval.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 parawD
porque a diferença entre as duas datas é menor que sete dias, mas retorna 1 parawY
porque há uma diferença de sete dias entre os primeiros dias das respectivas semanas do calendário.Intervalos maiores. Se
Interval
for definido comoDateInterval.Year
, o valor retornado será calculado puramente a partir das partes de ano deDate1
eDate2
. Da mesma forma, o valor retornado paraDateInterval.Month
é calculado puramente das partes de ano e mês dos argumentos e paraDateInterval.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 paraDateInterval.Year
,DateInterval.Quarter
ouDateInterval.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 oSubtract
método em qualquer um de seus formulários sobrecarregados: DateTime.Subtract subtrai um TimeSpan de umaDate
variável para retornar outroDate
valor e DateTime.Subtract subtrai umDate
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
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- Resumo do tipo de dados (Visual Basic)
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 deDate1
do valor deDate2
para produzir a diferença. Nenhum valor é alterado no programa de chamada.Valores retornados. Como
Date1
eDate2
são doDate
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 umLong
valor.Se
Date1
representar uma data e hora posteriores queDate2
,DateDiff
retornará um número negativo.Intervalos de dia. Se
Interval
estiver definidoDateInterval.DayOfYear
como , ele será tratado da mesma forma queDateInterval.Day
, porqueDayOfYear
não é uma unidade significativa para um intervalo de tempo.Intervalos de semana. Se
Interval
for definido comoDateInterval.WeekOfYear
, o valor retornado representará o número de semanas entre o primeiro dia da semana queDate1
contém e o primeiro dia da semana queDate2
contém . O exemplo a seguir mostra como isso produz resultados diferentes deDateInterval.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 parawD
porque a diferença entre as duas datas é menor que sete dias, mas retorna 1 parawY
porque há uma diferença de sete dias entre os primeiros dias das respectivas semanas de calendário.Intervalos maiores. Se
Interval
for definido comoDateInterval.Year
, o valor retornado será calculado puramente a partir das partes do ano deDate1
eDate2
. Da mesma forma, o valor retornado paraDateInterval.Month
é calculado puramente a partir das partes de ano e mês dos argumentos e paraDateInterval.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 paraDateInterval.Year
,DateInterval.Quarter
ouDateInterval.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 oSubtract
método em qualquer um de seus formulários sobrecarregados: DateTime.Subtract subtrai um TimeSpan de umaDate
variável para retornar outroDate
valor e DateTime.Subtract subtrai umDate
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
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- Resumo do tipo de dados (Visual Basic)
Aplica-se a
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de