Función DateDiff

Devuelve un valor Variant (Long) que especifica el número de intervalos de tiempo entre dos fechas especificadas.

Sintaxis

DateDiff(intervalo, fecha1, fecha2, [ primerDíaDeLaSemana, [ primerdíaaño ]] )

La sintaxis de la función DateDiff tiene estos argumentos con nombre:

Parte Descripción
interval Obligatorio. Expresión de cadena que es el intervalo de tiempo que se usa para calcular la diferencia entre fecha1 y fecha2.
fecha1, fecha2 Obligatorio; Variant (Date). Las dos fechas que se quieren usar en el cálculo.
firstdayofweek Opcional. Constante que especifica el primer día de la semana. Si no se especifica, se usa domingo.
firstweekofyear Opcional. Constante que especifica la primera semana del año. Si no se especifica la primera semana, se presupone que es la semana del 1 de enero.

Configuración

El argumentointerval tiene esta configuración:

Configuración Descripción
yyyy Año
q Trimestre
m Mes
y Día del año
d Día
w Día de la semana
ww Semana
h Hora
n Minuto
s Segundo

El argumento primerDíaDeLaSemana tiene los siguientes valores:

Constante Valor Descripción
vbUseSystem 0 Se usa la configuración NLS API (compatibilidad con el idioma nacional).
vbSunday 1 Domingo (valor predeterminado)
vbMonday 2 lunes
vbTuesday 3 martes
vbWednesday 4 miércoles
vbThursday 5 jueves
vbFriday 6 viernes
vbSaturday 7 Sábado

El argumento firstweekofyear tiene los siguientes valores:

Constante Valor Descripción
vbUseSystem 0 Se usa la configuración NLS API (compatibilidad con el idioma nacional).
vbFirstJan1 1 Se comienza con la semana en la que transcurre el 1 enero (predeterminado).
vbFirstFourDays 2 Se comienza con la primera semana que tenga como mínimo cuatro días en el año nuevo.
vbFirstFullWeek 3 Se comienza con la primera semana completa del año.

Observaciones

Use la función DateDiff para determinar cuántos intervalos de tiempo especificados existen entre dos fechas. 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.

Para calcular el número de días entre fecha1 y fecha2, puede utilizar día del año ("y") o día ("d"). Cuando el intervalo es semana ("w"), DateDiff devuelve el número de semanas entre dos fechas. Si fecha1 es un lunes, DateDiff cuenta el número de lunes hasta fecha2. Cuenta fecha2 pero no fecha1.

Sin embargo, si el intervalo es semana ("ww"), la función DateDiff devuelve el número de semanas del calendario entre dos fechas. Cuenta el número de domingos entre fecha1 y fecha2. DateDiff cuenta fecha2 si es un domingo, pero no cuenta fecha1 aunque también sea un domingo.

Si fecha1 hace referencia a un punto posterior en el tiempo a fecha2, la función DateDiff devuelve un número negativo. El argumento primerDíaDeLaSemana afecta a los cálculos que usan los símbolos de intervalo "w" y "ww".

Si fecha1 o fecha2 son un literal de fecha, el año especificado se convierte en una parte permanente de dicha fecha. Sin embargo, si fecha1 o fecha2 están entre comillas dobles (" ") y se omite el año, el año actual se inserta en el código cada vez que se evalúan las expresiones fecha1 o fecha2. Esto permite escribir código que puede usarse en años diferentes.

Al comparar el 31 de diciembre con el 1 de enero del año siguiente, DateDiff para Año ("yyyy") devuelve 1 aunque solo haya transcurrido un día.

Nota:

En el caso de fecha1 y fecha2, si el valor de la propiedad Calendar es gregoriano, la fecha especificada tiene que ser gregoriana. Si el calendario es Hijri, la fecha especificada tiene que ser Hijri.

Ejemplo

En este ejemplo se usa la función DateDiff para mostrar el número de días entre una fecha determinada y el día de hoy.

Dim TheDate As Date    ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.