DateAndTime.DateDiff Método

Definición

Devuelve un valor que especifica el número de intervalos de tiempo entre dos valores de Date.

Sobrecargas

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

Date1 Resta de Date2 para proporcionar un valor largo que especifique el número de intervalos de tiempo entre los dos Date valores.

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

Date1 Resta de Date2 para proporcionar un valor largo que especifique el número de intervalos de tiempo entre los dos Date valores.

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

Source:
DateAndTime.vb
Source:
DateAndTime.vb
Source:
DateAndTime.vb

Resta Date1 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 de enumeración DateInterval o expresión de cadena que representa el intervalo de tiempo que se desea utilizar como unidad de la diferencia entre Date1 y Date2.

Date1
DateTime

Obligatorio. Primer valor de fecha u hora que se va a utilizar en el cálculo.

Date2
DateTime

Obligatorio. Segundo valor de fecha u hora que se va a utilizar en el cálculo.

DayOfWeek
FirstDayOfWeek

Opcional. Valor elegido de la enumeración FirstDayOfWeek que especifica el primer día de la semana. Si no se especifica, se utiliza Sunday.

WeekOfYear
FirstWeekOfYear

Opcional. Valor elegido de la enumeración FirstWeekOfYear que especifica la primera semana del año. Si no se especifica, se utiliza Jan1.

Devoluciones

Valor Long que especifica el número de intervalos de tiempo entre dos valores de Date.

Excepciones

Date1, Date2 o DayofWeek está fuera del intervalo.

Date1 o Date2 pertenece a 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. DateDiff resta el valor de del Date1 valor de Date2 para generar la diferencia. Ninguno de los valores se cambia en el programa de llamada.

  • Valores devueltos. Dado Date1 que y Date2 son del Date tipo de datos, contienen valores de fecha y hora precisos para tics de 100 nanosegundos en el temporizador del sistema. Sin embargo, DateDiff siempre devuelve el número de intervalos de tiempo como un Long valor.

    Si Date1 representa una fecha y hora posteriores a Date2, DateDiff devuelve un número negativo.

  • Intervalos de día. Si Interval se establece DateInterval.DayOfYearen , se trata igual DateInterval.Dayque , porque DayOfYear no es una unidad significativa para un intervalo de tiempo.

  • Intervalos de semana. Si Interval se establece DateInterval.WeekOfYearen , el valor devuelto representa el número de semanas entre el primer día de la semana que contiene y el primer día de la semana que contiene Date1Date2. En el ejemplo siguiente se muestra cómo se generan 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)
    

    En el ejemplo anterior, DateDiff devuelve 0 a wD porque la diferencia entre las dos fechas es inferior a siete días, pero devuelve 1 a wY porque hay una diferencia de siete días entre los primeros días de las semanas naturales respectivas.

  • Intervalos más grandes. Si Interval se establece DateInterval.Yearen , el valor devuelto se calcula exclusivamente a partir de las partes del año de Date1 y Date2. Del mismo modo, el valor devuelto de DateInterval.Month se calcula exclusivamente a partir de las partes de año y mes de los argumentos, y para DateInterval.Quarter los trimestres que contienen las dos fechas.

    Por ejemplo, al comparar el 31 de diciembre con el 1 de enero del año siguiente, DateDiff devuelve 1 para DateInterval.Year, DateInterval.Quartero DateInterval.Month, aunque solo haya transcurrido un día como máximo.

    Para referencias culturales como japonés que tienen varias eras, el DateDiff mé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 Date valor es compatible con una DateTime estructura, sus métodos proporcionan opciones adicionales para buscar intervalos de tiempo. Por ejemplo, puede usar el Subtract método en cualquiera de sus formas sobrecargadas: DateTime.Subtract resta un TimeSpan de una Date variable para devolver otro Date valor y DateTime.Subtract resta un valor para devolver un DateTimeSpan. Puede tiempo de 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" Minute
DateInterval.Month "m" Month (Mes)
DateInterval.Quarter "q" Quarter (Trimestre)
DateInterval.Second "s" Second
DateInterval.Weekday "w" Semana
DateInterval.WeekOfYear "ww" Semana del calendario
DateInterval.Year "yyyy" Year

El DayOfWeek argumento puede tener una de las siguientes opciones de configuración.

Valor de enumeración Value 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 Value 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 del año nuevo

Consulte también

Se aplica a

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

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 de enumeración DateInterval o expresión de cadena que representa el intervalo de tiempo que se desea utilizar como unidad de la diferencia entre Date1 y Date2.

Date1
Object

Obligatorio. Primer valor de fecha u hora que se va a utilizar en el cálculo.

Date2
Object

Obligatorio. Segundo valor de fecha u hora que se va a utilizar en el cálculo.

DayOfWeek
FirstDayOfWeek

Opcional. Valor elegido de la enumeración FirstDayOfWeek que especifica el primer día de la semana. Si no se especifica, se utiliza Sunday.

WeekOfYear
FirstWeekOfYear

Opcional. Valor elegido de la enumeración FirstWeekOfYear que especifica la primera semana del año. Si no se especifica, se utiliza Jan1.

Devoluciones

Valor Long que especifica el número de intervalos de tiempo entre dos valores de Date.

Excepciones

Date1, Date2 o DayofWeek está fuera del intervalo.

Date1 o Date2 pertenece a 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. DateDiff resta el valor de Date1 del valor de Date2 para generar la diferencia. No se cambia ningún valor en el programa de llamada.

  • Valores devueltos. Dado Date1 que y Date2 son del Date tipo de datos, contienen valores de fecha y hora precisos en tics de 100 nanosegundos en el temporizador del sistema. Sin embargo, DateDiff siempre devuelve el número de intervalos de tiempo como un Long valor.

    Si Date1 representa una fecha y hora posteriores que Date2, DateDiff devuelve un número negativo.

  • Intervalos de día. Si Interval se establece DateInterval.DayOfYearen , se trata igual DateInterval.Dayque , porque DayOfYear no es una unidad significativa para un intervalo de tiempo.

  • Intervalos de semana. Si Interval se establece DateInterval.WeekOfYearen , el valor devuelto representa el número de semanas entre el primer día de la semana que contiene Date1 y el primer día de la semana que contiene Date2. En el ejemplo siguiente se muestra cómo genera 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)
    

    En el ejemplo anterior, DateDiff devuelve 0 a wD porque la diferencia entre las dos fechas es inferior a siete días, pero devuelve 1 a wY porque hay una diferencia de siete días entre los primeros días de las semanas naturales respectivas.

  • Intervalos más grandes. Si Interval se establece DateInterval.Yearen , el valor devuelto se calcula exclusivamente a partir de las partes del año de Date1 y Date2. Del mismo modo, el valor devuelto de DateInterval.Month se calcula exclusivamente a partir de las partes de año y mes de los argumentos, y para DateInterval.Quarter los trimestres que contienen las dos fechas.

    Por ejemplo, al comparar el 31 de diciembre con el 1 de enero del año siguiente, DateDiff devuelve 1 para DateInterval.Year, DateInterval.Quartero DateInterval.Month, aunque haya transcurrido solo un día como máximo.

    Para referencias culturales como japonesas que tienen varias eras, el DateDiff mé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 Date valor es compatible con una DateTime estructura, sus métodos proporcionan opciones adicionales para buscar intervalos de tiempo. Por ejemplo, puede usar el Subtract método en cualquiera de sus formas sobrecargadas: DateTime.Subtract resta un TimeSpan de una Date variable para devolver otro Date valor y DateTime.Subtract resta un Date valor para devolver un TimeSpan. Puede tiempo de 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" Minute
DateInterval.Month "m" Month (Mes)
DateInterval.Quarter "q" Quarter (Trimestre)
DateInterval.Second "s" Second
DateInterval.Weekday "w" Semana
DateInterval.WeekOfYear "ww" Semana del calendario
DateInterval.Year "yyyy" Year

El DayOfWeek argumento puede tener una de las siguientes opciones de configuración.

Valor de enumeración Value 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 Value 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 nuevo año

Consulte también

Se aplica a