更新:2007 年 11 月
返回一个 Date 值,其中包含已添加指定时间间隔的日期和时间值。
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
参数
- Interval 
 必需。表示要添加的时间间隔的 DateInterval 枚举值或 String 表达式。
- Number 
 必需。数据类型为 Double。表示要添加的间隔数目的浮点表达式。Number 可以是正数(获取将来的日期/时间值)或负数(获取过去的日期/时间值)。Number 的小数部分将被忽略。
- DateValue 
 必需。数据类型为 Date。表示要向其添加间隔的日期和时间的表达式。DateValue 本身在调用程序中不变。
设置
Interval 参数可以有以下设置之一。
| 枚举值 | 字符串 | 待添加时间间隔的单位 | 
|---|---|---|
| DateInterval.Day | d | 天;截断为整数值 | 
| DateInterval.DayOfYear | y | 天;截断为整数值 | 
| DateInterval.Hour | h | 小时;截断为整数值 | 
| DateInterval.Minute | n | 分钟;截断为整数值 | 
| DateInterval.Month | m | 月份;截断为整数值 | 
| DateInterval.Quarter | q | 季度;截断为整数值 | 
| DateInterval.Second | s | 秒;截断为整数值 | 
| DateInterval.Weekday | w | 天;截断为整数值 | 
| DateInterval.WeekOfYear | ww | 周;截断为整数值 | 
| DateInterval.Year | yyyy | 年;截断为整数值 | 
异常
| 异常类型 | 错误号 | 条件 | 
|---|---|---|
| DateValue 并不强制为 Date。 | ||
| Interval 无效。 | ||
| 计算所得日期早于元年 1 月 1 日 00:00:00,或晚于 9999 年 12 月 31 日 23:59:59。 | 
如果正在升级使用非结构化错误处理方式的 Visual Basic 6.0 应用程序,请参见“错误号”一列。(您可以根据 Number 属性(Err 对象) 比较错误号。) 然而,如果可能,应当考虑用 Visual Basic 的结构化异常处理概述 替换这种错误控制。
备注
可以使用 DateAdd 函数给日期加上或减去指定的时间间隔。例如,可以计算 30 天后的日期也可以计算 45 分钟前的时间。
若要将天数添加到 DateValue,可以使用 DateInterval.Day、DateInterval.DayOfYear 或 DateInterval.Weekday。可将这些视为是等效的,因为 DayOfYear 和 Weekday 不是有意义的时间间隔。
DateAdd 函数不返回无效日期。若有必要,结果日期的天部分可向后调整为结果年中结果月的最后一日。下面的示例将 1 月 31 日加上一个月:
Dim NextMonth As Date = DateAdd(DateInterval.Month, 1, #1/31/1995#)
本示例中,DateAdd 返回 #2/28/1995#,而非 #2/31/1995#。若 DateValue 是 #1/31/1996#,则返回 #2/29/1996#,因为 1996 年是闰年。
| .gif) 说明: | 
|---|
| DateAdd 使用 System.Globalization 命名空间中的 CultureInfo 类的 CurrentCulture 属性的当前日历设置。默认 CurrentCulture 值由“控制面板”设置决定。 | 
由于每个 Date 值都由 DateTime 结构支持,其方法在添加时间间隔时提供了附加选项。例如,可以将天的小数添加到 Date 变量(该小数四舍五入到毫秒),如下所示:
Dim NextTime As Date = Now        ' Current date and time.
NextTime = NextTime.AddDays(3.4)  ' Increment by 3 2/5 days.
示例
本示例取得一个日期,并使用 DateAdd 函数显示指定月份数以后的相应日期。
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)
要求
**模块:**DateAndTime
**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)