DateAndTime.DateDiff Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve un valor que especifica el número de intervalos de tiempo entre dos Date valores.
Sobrecargas
| Nombre | Description |
|---|---|
| DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear) |
|
| DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear) |
|
DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)
- Source:
- DateAndTime.vb
- Source:
- DateAndTime.vb
- Source:
- DateAndTime.vb
- Source:
- DateAndTime.vb
- Source:
- DateAndTime.vb
Date1 Resta de Date2 para proporcionar un valor largo que especifique el número de intervalos de tiempo entre los dos 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
Obligatorio. Valor DateInterval de enumeración o expresión de cadena que representa el intervalo de tiempo que desea usar como unidad de diferencia entre Date1 y Date2.
- Date1
- DateTime
Obligatorio. El primer valor de fecha y hora que desea usar en el cálculo.
- Date2
- DateTime
Obligatorio. El segundo valor de fecha y hora que desea usar en el cálculo.
- DayOfWeek
- FirstDayOfWeek
Opcional. Valor elegido de la FirstDayOfWeek enumeración que especifica el primer día de la semana. Si no se especifica, se utiliza Sunday.
- WeekOfYear
- FirstWeekOfYear
Opcional. Valor elegido de la FirstWeekOfYear enumeración que especifica la primera semana del año. Si no se especifica, se utiliza Jan1.
Devoluciones
Valor largo que especifica el número de intervalos de tiempo entre dos Date valores.
Excepciones
Date1, Date2o DayofWeek está fuera del intervalo.
Date1 o Date2 es de un tipo no válido.
Ejemplos
En este ejemplo se usa la DateDiff función para mostrar el número de días entre una fecha determinada y hoy.
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
Comentarios
Puede usar la DateDiff función para determinar cuántos intervalos de tiempo especificados existen entre dos valores de fecha y hora. Por ejemplo, puede usar DateDiff para calcular el número de días entre dos fechas o el número de semanas entre hoy y el final del año.
Comportamiento
Tratamiento de parámetros.
DateDiffresta el valor de delDate1valor deDate2para generar la diferencia. Ninguno de los valores se cambia en el programa de llamada.Valores devueltos. Dado
Date1que yDate2son delDatetipo de datos, contienen valores de fecha y hora precisos en tics de 100 nanosegundos en el temporizador del sistema. Sin embargo,DateDiffsiempre devuelve el número de intervalos de tiempo como unLongvalor.Si
Date1representa una fecha y hora posteriores queDate2,DateDiffdevuelve un número negativo.Intervalos de día. Si
Intervalse establece enDateInterval.DayOfYear, se trata igualDateInterval.Dayque , porqueDayOfYearno es una unidad significativa para un intervalo de tiempo.Intervalos de semana. Si
Intervalse estableceDateInterval.WeekOfYearen , el valor devuelto representa el número de semanas entre el primer día de la semana que contieneDate1y el primer día de la semana que contieneDate2. En el ejemplo siguiente se muestra cómo genera 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)En el ejemplo anterior,
DateDiffdevuelve 0 awDporque la diferencia entre las dos fechas es inferior a siete días, pero devuelve 1 awYporque hay una diferencia de siete días entre los primeros días de las semanas naturales respectivas.Intervalos más grandes. Si
Intervalse establece enDateInterval.Year, el valor devuelto se calcula exclusivamente a partir de las partes del año deDate1yDate2. Del mismo modo, el valor devuelto deDateInterval.Monthse calcula exclusivamente a partir de las partes de año y mes de los argumentos, y deDateInterval.Quarterlos trimestres que contienen las dos fechas.Por ejemplo, al comparar el 31 de diciembre al 1 de enero del año siguiente,
DateDiffdevuelve 1 paraDateInterval.Year,DateInterval.QuarteroDateInterval.Month, aunque haya transcurrido solo un día como máximo.Para referencias culturales como japonés que tienen varias eras, el
DateDiffmétodo no devuelve una diferencia en años si la diferencia abarca dos o más eras. En su lugar, puede calcular la diferencia en los valores devueltos por la Year propiedad , como se muestra en el ejemplo siguiente:date2.Year - date1.Year.Otros intervalos. Dado que cada
Datevalor es compatible con una DateTime estructura, sus métodos proporcionan opciones adicionales para buscar intervalos de tiempo. Por ejemplo, puede usar elSubtractmétodo en cualquiera de sus formularios sobrecargados: DateTime.Subtract resta un TimeSpan de unaDatevariable para devolver otroDatevalor y DateTime.Subtract resta unDatevalor para devolver un TimeSpan. Puede realizar un proceso para averiguar cuántos milisegundos tarda, como se muestra en el ejemplo siguiente.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
El Interval argumento puede tener una de las siguientes opciones de configuración.
| Valor de enumeración | Valor de cadena | Diferencia de unidad de tiempo |
|---|---|---|
DateInterval.Day |
"d" | Día |
DateInterval.DayOfYear |
"y" | Día |
DateInterval.Hour |
"h" | Hora |
DateInterval.Minute |
"n" | Minuto |
DateInterval.Month |
"m" | Mes |
DateInterval.Quarter |
"q" | Cuarto |
DateInterval.Second |
"s" | Segundo |
DateInterval.Weekday |
"w" | Semana |
DateInterval.WeekOfYear |
"ww" | Semana del calendario |
DateInterval.Year |
"aaaa" | Año |
El DayOfWeek argumento puede tener una de las siguientes opciones de configuración.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
FirstDayOfWeek.System |
0 | Primer día de la semana especificado en la configuración del sistema |
FirstDayOfWeek.Sunday |
1 | Domingo (valor predeterminado) |
FirstDayOfWeek.Monday |
2 | Lunes (cumple con la norma ISO 8601, sección 3.17) |
FirstDayOfWeek.Tuesday |
3 | Martes |
FirstDayOfWeek.Wednesday |
4 | Miércoles |
FirstDayOfWeek.Thursday |
5 | Jueves |
FirstDayOfWeek.Friday |
6 | Viernes |
FirstDayOfWeek.Saturday |
7 | Sábado |
El WeekOfYear argumento puede tener una de las siguientes opciones de configuración.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
FirstWeekOfYear.System |
0 | Primera semana del año especificada en la configuración del sistema |
FirstWeekOfYear.Jan1 |
1 | Semana en la que se produce el 1 de enero (valor predeterminado) |
FirstWeekOfYear.FirstFourDays |
2 | Semana que tiene al menos cuatro días en el año nuevo (cumple con la norma ISO 8601, sección 3.17) |
FirstWeekOfYear.FirstFullWeek |
3 | Primera semana completa en el año nuevo |
Consulte también
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- Resumen de tipos de datos (Visual Basic)
Se aplica a
DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)
- Source:
- DateAndTime.vb
- Source:
- DateAndTime.vb
- Source:
- DateAndTime.vb
- Source:
- DateAndTime.vb
- Source:
- DateAndTime.vb
Date1 Resta de Date2 para proporcionar un valor largo que especifique el número de intervalos de tiempo entre los dos 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
Obligatorio. Valor DateInterval de enumeración o expresión de cadena que representa el intervalo de tiempo que desea usar como unidad de diferencia entre Date1 y Date2.
- Date1
- Object
Obligatorio. El primer valor de fecha y hora que desea usar en el cálculo.
- Date2
- Object
Obligatorio. El segundo valor de fecha y hora que desea usar en el cálculo.
- DayOfWeek
- FirstDayOfWeek
Opcional. Valor elegido de la FirstDayOfWeek enumeración que especifica el primer día de la semana. Si no se especifica, se utiliza Sunday.
- WeekOfYear
- FirstWeekOfYear
Opcional. Valor elegido de la FirstWeekOfYear enumeración que especifica la primera semana del año. Si no se especifica, se utiliza Jan1.
Devoluciones
Valor largo que especifica el número de intervalos de tiempo entre dos Date valores.
Excepciones
Date1, Date2o DayofWeek está fuera del intervalo.
Date1 o Date2 es de un tipo no válido.
Ejemplos
En este ejemplo se usa la DateDiff función para mostrar el número de días entre una fecha determinada y hoy.
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
Comentarios
Puede usar la DateDiff función para determinar cuántos intervalos de tiempo especificados existen entre dos valores de fecha y hora. Por ejemplo, puede usar DateDiff para calcular el número de días entre dos fechas o el número de semanas entre hoy y el final del año.
Comportamiento
Tratamiento de parámetros.
DateDiffresta el valor de delDate1valor deDate2para generar la diferencia. Ninguno de los valores se cambia en el programa de llamada.Valores devueltos. Dado
Date1que yDate2son delDatetipo de datos, contienen valores de fecha y hora precisos en tics de 100 nanosegundos en el temporizador del sistema. Sin embargo,DateDiffsiempre devuelve el número de intervalos de tiempo como unLongvalor.Si
Date1representa una fecha y hora posteriores queDate2,DateDiffdevuelve un número negativo.Intervalos de día. Si
Intervalse establece enDateInterval.DayOfYear, se trata igualDateInterval.Dayque , porqueDayOfYearno es una unidad significativa para un intervalo de tiempo.Intervalos de semana. Si
Intervalse estableceDateInterval.WeekOfYearen , el valor devuelto representa el número de semanas entre el primer día de la semana que contieneDate1y el primer día de la semana que contieneDate2. En el ejemplo siguiente se muestra cómo genera 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)En el ejemplo anterior,
DateDiffdevuelve 0 awDporque la diferencia entre las dos fechas es inferior a siete días, pero devuelve 1 awYporque hay una diferencia de siete días entre los primeros días de las semanas naturales respectivas.Intervalos más grandes. Si
Intervalse establece enDateInterval.Year, el valor devuelto se calcula exclusivamente a partir de las partes del año deDate1yDate2. Del mismo modo, el valor devuelto deDateInterval.Monthse calcula exclusivamente a partir de las partes de año y mes de los argumentos, y deDateInterval.Quarterlos trimestres que contienen las dos fechas.Por ejemplo, al comparar el 31 de diciembre al 1 de enero del año siguiente,
DateDiffdevuelve 1 paraDateInterval.Year,DateInterval.QuarteroDateInterval.Month, aunque haya transcurrido solo un día como máximo.Para referencias culturales como japonés que tienen varias eras, el
DateDiffmétodo no devuelve una diferencia en años si la diferencia abarca dos o más eras. En su lugar, puede calcular la diferencia en los valores devueltos por la Year propiedad , como se muestra en el ejemplo siguiente:date2.Year - date1.Year.Otros intervalos. Dado que cada
Datevalor es compatible con una DateTime estructura, sus métodos proporcionan opciones adicionales para buscar intervalos de tiempo. Por ejemplo, puede usar elSubtractmétodo en cualquiera de sus formularios sobrecargados: DateTime.Subtract resta un TimeSpan de unaDatevariable para devolver otroDatevalor y DateTime.Subtract resta unDatevalor para devolver un TimeSpan. Puede realizar un proceso para averiguar cuántos milisegundos tarda, como se muestra en el ejemplo siguiente.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
El Interval argumento puede tener una de las siguientes opciones de configuración.
| Valor de enumeración | Valor de cadena | Diferencia de unidad de tiempo |
|---|---|---|
DateInterval.Day |
"d" | Día |
DateInterval.DayOfYear |
"y" | Día |
DateInterval.Hour |
"h" | Hora |
DateInterval.Minute |
"n" | Minuto |
DateInterval.Month |
"m" | Mes |
DateInterval.Quarter |
"q" | Cuarto |
DateInterval.Second |
"s" | Segundo |
DateInterval.Weekday |
"w" | Semana |
DateInterval.WeekOfYear |
"ww" | Semana del calendario |
DateInterval.Year |
"aaaa" | Año |
El DayOfWeek argumento puede tener una de las siguientes opciones de configuración.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
FirstDayOfWeek.System |
0 | Primer día de la semana especificado en la configuración del sistema |
FirstDayOfWeek.Sunday |
1 | Domingo (valor predeterminado) |
FirstDayOfWeek.Monday |
2 | Lunes (cumple con la norma ISO 8601, sección 3.17) |
FirstDayOfWeek.Tuesday |
3 | Martes |
FirstDayOfWeek.Wednesday |
4 | Miércoles |
FirstDayOfWeek.Thursday |
5 | Jueves |
FirstDayOfWeek.Friday |
6 | Viernes |
FirstDayOfWeek.Saturday |
7 | Sábado |
El WeekOfYear argumento puede tener una de las siguientes opciones de configuración.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
FirstWeekOfYear.System |
0 | Primera semana del año especificada en la configuración del sistema |
FirstWeekOfYear.Jan1 |
1 | Semana en la que se produce el 1 de enero (valor predeterminado) |
FirstWeekOfYear.FirstFourDays |
2 | Semana que tiene al menos cuatro días en el año nuevo (cumple con la norma ISO 8601, sección 3.17) |
FirstWeekOfYear.FirstFullWeek |
3 | Primera semana completa en el año nuevo |
Consulte también
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- Resumen de tipos de datos (Visual Basic)