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 |
---|---|---|
DateValue no es convertible en Date. |
||
El intervalo no es válido. |
||
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)
Weekday (Función, Visual Basic)