DateAdd (Función, Visual Basic)

Actualización: noviembre 2007

Devuelve un valor de tipo Date que contiene un valor de fecha y hora al que se ha agregado un intervalo de tiempo especificado.

Public Overloads Function DateAdd( _
   ByVal Interval As DateInterval, _
   ByVal Number As Double, _
   ByVal DateValue As DateTime _
) As DateTime
' -or-
Public Overloads Function DateAdd( _
   ByVal Interval As String, _
   ByVal Number As Double, _
   ByVal DateValue As Object _
) As DateTime

Parámetros

  • Interval
    Obligatorio. Valor de enumeración DateInterval o expresión String que representa el intervalo de tiempo que se desea agregar.

  • Number
    Obligatorio. Double. Expresión de punto flotante que representa el número de intervalos que se desea agregar. Number puede ser un valor positivo (para obtener fechas u horas futuras) o negativo (para obtener fechas u horas pasadas). Se omite cualquier fracción de Number.

  • DateValue
    Obligatorio. Date. Expresión que representa la fecha y la hora a las que se debe agregar el intervalo. No se cambia DateValue en el programa de llamada.

Valores

El argumento Interval puede tener uno de los siguientes valores:

Valor de enumeración

Cadena

Unidad de intervalo de tiempo agregada

DateInterval.Day

d

Día; truncado al valor integral

DateInterval.DayOfYear

y

Día; truncado al valor integral

DateInterval.Hour

h

Hora; truncada al valor integral

DateInterval.Minute

n

Minuto; truncado al valor integral

DateInterval.Month

m

Mes; truncado al valor integral

DateInterval.Quarter

q

Trimestre; truncado al valor integral

DateInterval.Second

s

Segundo; truncado al valor integral

DateInterval.Weekday

w

Día; truncado al valor integral

DateInterval.WeekOfYear

ww

Semana; truncada al valor integral

DateInterval.Year

yyyy

Año; truncado al valor integral

Excepciones

Tipo de excepción

Número de error

Condición

InvalidCastException

13

DateValue no es convertible en Date.

ArgumentException

5

El intervalo no es válido.

ArgumentOutOfRangeException

9

La fecha calculada es anterior a las 00:00:00 horas del 1 de enero del año 1 o posterior a las 23:59:59 del 31 de diciembre de 9999.

Consulte la columna "Número de error" si está actualizando aplicaciones de Visual Basic 6.0 que utilizan el control de errores no estructurado. (Se puede comparar el número de error con respecto a Number (Propiedad, objeto Err)). Sin embargo, siempre que sea posible, se debe considerar la sustitución de dicho control de errores por Información general sobre el control estructurado de excepciones de Visual Basic.

Comentarios

Se puede utilizar la función DateAdd para agregar o sustraer un intervalo de tiempo especificado de una fecha. Por ejemplo, se puede calcular una fecha 30 días posterior al día de hoy o una hora 45 minutos anterior a la actual.

Para agregar días a DateValue, puede utilizar DateInterval.Day, DateInterval.DayOfYear o DateInterval.Weekday. Éstos se tratan como equivalentes porque DayOfYear y Weekday no son intervalos de tiempo significativos.

La función DateAdd nunca devuelve una fecha no válida. Si es necesario, la parte del día de la fecha resultante se ajusta en sentido descendente hasta el último día del mes resultante del año resultante. En el ejemplo siguiente se agrega un mes al 31 de enero:

Dim NextMonth As Date = DateAdd(DateInterval.Month, 1, #1/31/1995#)

En este ejemplo, DateAdd devuelve #2/28/1995#, no #2/31/1995#. Si DateValue es #1/31/1996#, devuelve #2/29/1996# porque 1996 es un año bisiesto.

Nota:

DateAdd utiliza la configuración de calendario actual de la propiedad CurrentCulture de la clase CultureInfo en el espacio de nombres System.Globalization. Los valores de CurrentCulture predeterminados están determinados por la configuración del Panel de control.

Puesto que todos los valores Date se basan en una estructura DateTime, sus métodos proporcionan opciones adicionales para agregar intervalos de tiempo. Por ejemplo, se puede agregar a la variable Date un número decimal de días, redondeado al milisegundo más cercano, del siguiente modo:

Dim NextTime As Date = Now        ' Current date and time.
NextTime = NextTime.AddDays(3.4)  ' Increment by 3 2/5 days.

Ejemplo

En este ejemplo se toma una fecha y mediante la función DateAdd, se muestra la fecha correspondiente un número especificado de meses en el futuro.

Dim Msg, Number, StartDate As String   'Declare variables.
Dim Months As Double
Dim SecondDate As Date
Dim IntervalType As DateInterval
IntervalType = DateInterval.Month   ' Specifies months as interval.
StartDate = InputBox("Enter a date")
SecondDate = CDate(StartDate)
Number = InputBox("Enter number of months to add")
Months = Val(Number)
Msg = "New date: " & DateAdd(IntervalType, Months, SecondDate)
MsgBox(Msg)

Requisitos

Espacio de nombres:Microsoft.VisualBasic

**Módulo:**DateAndTime

**Ensamblado:**Visual Basic Runtime Library (en Microsoft.VisualBasic.dll)

Vea también

Referencia

DateDiff (Función, Visual Basic)

DatePart (Función, Visual Basic)

Day (Función, Visual Basic)

Format (Función)

Now (Propiedad)

Weekday (Función, Visual Basic)

Year (Función, Visual Basic)

Date (Tipo de datos, Visual Basic)

System