DateAdd 函数 (Visual Basic)

更新: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

年;截断为整数值

异常

异常类型

错误号

条件

InvalidCastException

13

DateValue 并不强制为 Date。

ArgumentException

5

Interval 无效。

ArgumentOutOfRangeException

9

计算所得日期早于元年 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 年是闰年。

说明:

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)

要求

命名空间:Microsoft.VisualBasic

**模块:**DateAndTime

**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)

请参见

参考

DateDiff 函数 (Visual Basic)

DatePart 函数 (Visual Basic)

Day 函数 (Visual Basic)

Format 函数

Now 属性

Weekday 函数 (Visual Basic)

Year 函数 (Visual Basic)

Date 数据类型 (Visual Basic)

System