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 Date valores.
Sobrecargas
| Nome | Description |
|---|---|
| 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
- Origem:
- DateAndTime.vb
- Origem:
- DateAndTime.vb
Subtrai Date1 para Date2 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
Necessário. Um DateInterval valor de enumeração ou uma expressão de cadeia de caracteres que representa o intervalo de tempo que você deseja usar como a unidade de diferença entre Date1 e Date2.
- Date1
- DateTime
Necessário. O primeiro valor de data/hora que você deseja usar no cálculo.
- Date2
- DateTime
Necessário. O segundo valor de data/hora que você deseja usar no cálculo.
- DayOfWeek
- FirstDayOfWeek
Opcional. Um valor escolhido da FirstDayOfWeek enumeração que especifica o primeiro dia da semana. Se não for especificado, é usado Sunday.
- WeekOfYear
- FirstWeekOfYear
Opcional. Um valor escolhido da FirstWeekOfYear enumeração 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 Date valores.
Exceções
Date1, Date2ou 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.
DateDiffsubtrai o valor doDate1valor deDate2produzir a diferença. Nenhum valor é alterado no programa de chamada.Valores retornados. Como
Date1eDate2são doDatetipo de dados, eles mantêm valores de data e hora precisos para tiques de 100 nanossegundos no temporizador do sistema. No entanto,DateDiffsempre retorna o número de intervalos de tempo como umLongvalor.Se
Date1representar uma data e hora posteriores,Date2DateDiffretornará um número negativo.Intervalos de dia. Se
Intervalestiver definido comoDateInterval.DayOfYear, ele será tratado da mesma formaDateInterval.Day, porqueDayOfYearnão é uma unidade significativa para um intervalo de tempo.Intervalos de semana. Se
Intervalestiver definido comoDateInterval.WeekOfYear, o valor retornado representará o número de semanas entre o primeiro dia da semana queDate1contém e o primeiro dia da semana queDate2conté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,
DateDiffretorna 0 parawDporque a diferença entre as duas datas é menor que sete dias, mas retorna 1 parawYporque há uma diferença de sete dias entre os primeiros dias das respectivas semanas do calendário.Intervalos maiores. Se
Intervalfor definido comoDateInterval.Year, o valor retornado será calculado puramente a partir das partes do ano deDate1eDate2. Da mesma forma, o valor retornado éDateInterval.Monthcalculado puramente a partir das partes ano e mês dos argumentos e paraDateInterval.Quarteros trimestres que contêm as duas datas.Por exemplo, ao comparar 31 de dezembro a 1º de janeiro do ano seguinte,
DateDiffretorna 1 paraDateInterval.Year,DateInterval.QuarterouDateInterval.Month, mesmo que no máximo um dia tenha decorrido.Para culturas como japonês que têm várias eras, o
DateDiffmé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 de valores retornados pela Year propriedade, conforme mostrado no exemplo a seguir:date2.Year - date1.Year.Outros intervalos. Como cada
Datevalor tem suporte por uma DateTime estrutura, seus métodos oferecem opções adicionais para encontrar intervalos de tempo. Por exemplo, você pode usar oSubtractmétodo em qualquer um de seus formulários sobrecarregados: DateTime.Subtract subtrai um TimeSpan de umaDatevariável para retornar outroDatevalor e DateTime.Subtract subtrai umDatevalor 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 seguintes configurações.
| 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" | Quarto |
DateInterval.Second |
"s" | Segundo |
DateInterval.Weekday |
"w" | Semana |
DateInterval.WeekOfYear |
"ww" | Semana do calendário |
DateInterval.Year |
"yyyyy" | Ano |
O DayOfWeek argumento 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 (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 | Sexta-feira |
FirstDayOfWeek.Saturday |
7 | Sábado |
O WeekOfYear argumento pode ter uma das seguintes configurações.
| 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 1º de janeiro ocorre (padrão) |
FirstWeekOfYear.FirstFourDays |
2 | Semana que tem pelo menos quatro dias no ano novo (em conformidade com o ISO standard 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
DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)
- Origem:
- DateAndTime.vb
- Origem:
- DateAndTime.vb
- Origem:
- DateAndTime.vb
- Origem:
- DateAndTime.vb
- Origem:
- DateAndTime.vb
Subtrai Date1 para Date2 dar 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
Necessário. Um DateInterval valor de enumeração ou uma expressão de cadeia de caracteres que representa o intervalo de tempo que você deseja usar como a unidade de diferença entre Date1 e Date2.
- Date1
- Object
Necessário. O primeiro valor de data/hora que você deseja usar no cálculo.
- Date2
- Object
Necessário. O segundo valor de data/hora que você deseja usar no cálculo.
- DayOfWeek
- FirstDayOfWeek
Opcional. Um valor escolhido da FirstDayOfWeek enumeração que especifica o primeiro dia da semana. Se não for especificado, é usado Sunday.
- WeekOfYear
- FirstWeekOfYear
Opcional. Um valor escolhido da FirstWeekOfYear enumeração 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 Date valores.
Exceções
Date1, Date2ou 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.
DateDiffsubtrai o valor doDate1valor deDate2produzir a diferença. Nenhum valor é alterado no programa de chamada.Valores retornados. Como
Date1eDate2são doDatetipo de dados, eles mantêm valores de data e hora precisos para tiques de 100 nanossegundos no temporizador do sistema. No entanto,DateDiffsempre retorna o número de intervalos de tempo como umLongvalor.Se
Date1representar uma data e hora posteriores,Date2DateDiffretornará um número negativo.Intervalos de dia. Se
Intervalestiver definido comoDateInterval.DayOfYear, ele será tratado da mesma formaDateInterval.Day, porqueDayOfYearnão é uma unidade significativa para um intervalo de tempo.Intervalos de semana. Se
Intervalestiver definido comoDateInterval.WeekOfYear, o valor retornado representará o número de semanas entre o primeiro dia da semana queDate1contém e o primeiro dia da semana queDate2conté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,
DateDiffretorna 0 parawDporque a diferença entre as duas datas é menor que sete dias, mas retorna 1 parawYporque há uma diferença de sete dias entre os primeiros dias das respectivas semanas do calendário.Intervalos maiores. Se
Intervalfor definido comoDateInterval.Year, o valor retornado será calculado puramente a partir das partes do ano deDate1eDate2. Da mesma forma, o valor retornado éDateInterval.Monthcalculado puramente a partir das partes ano e mês dos argumentos e paraDateInterval.Quarteros trimestres que contêm as duas datas.Por exemplo, ao comparar 31 de dezembro a 1º de janeiro do ano seguinte,
DateDiffretorna 1 paraDateInterval.Year,DateInterval.QuarterouDateInterval.Month, mesmo que no máximo um dia tenha decorrido.Para culturas como japonês que têm várias eras, o
DateDiffmé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 de valores retornados pela Year propriedade, conforme mostrado no exemplo a seguir:date2.Year - date1.Year.Outros intervalos. Como cada
Datevalor tem suporte por uma DateTime estrutura, seus métodos oferecem opções adicionais para encontrar intervalos de tempo. Por exemplo, você pode usar oSubtractmétodo em qualquer um de seus formulários sobrecarregados: DateTime.Subtract subtrai um TimeSpan de umaDatevariável para retornar outroDatevalor e DateTime.Subtract subtrai umDatevalor 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 seguintes configurações.
| 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" | Quarto |
DateInterval.Second |
"s" | Segundo |
DateInterval.Weekday |
"w" | Semana |
DateInterval.WeekOfYear |
"ww" | Semana do calendário |
DateInterval.Year |
"yyyyy" | Ano |
O DayOfWeek argumento 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 (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 | Sexta-feira |
FirstDayOfWeek.Saturday |
7 | Sábado |
O WeekOfYear argumento pode ter uma das seguintes configurações.
| 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 1º de janeiro ocorre (padrão) |
FirstWeekOfYear.FirstFourDays |
2 | Semana que tem pelo menos quatro dias no ano novo (em conformidade com o ISO standard 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)