DateSerial 函数 (Visual Basic)
更新:2007 年 11 月
返回表示已指定年月日的 Date 值,其时间信息被设置为午夜 (00:00:00)。
Public Function DateSerial( _
ByVal [Year] As Integer, _
ByVal [Month] As Integer, _
ByVal [Day] As Integer _
) As DateTime
参数
Year
必选。范围为 1 到 9999 的 Integer 表达式。但也接收小于此范围的值。如果 Year 为 0 到 99,它被解释为介于 1930 年和 2029 年之间,下面的“备注”部分对此做了解释。如果 Year 小于 1,则从当前年份减去它。Month
必选。范围为 1 到 12 的 Integer 表达式。但也接受此范围之外的值。Month 值的偏移量为 1,且该值应用于所计算年份的 1 月。换言之,就是 1 月加上 (Month - 1)。若有必要则对年份进行重新计算。以下的结果阐释了这种效果:如果 Month 为 1,则结果为所计算年份的 1 月。
如果 Month 为 0,则结果为上一年的 12 月。
如果 Month 为 -1,则结果为上一年的 11 月。
如果 Month 为 13,则结果为下一年的 1 月。
Day
必选。范围为 1 到 31 的 Integer 表达式。但也接受此范围之外的值。Day 值偏移量为 1,该值应用于所计算月份的第一天。换言之,就是该月份的第一天加上 (Day - 1)。若有必要,则对月份和年份进行重新计算。以下的结果阐释了这种效果:如果 Day 为 1,则结果为所计算月份的第一天。
如果 Day 为 0,则结果为上一月份的最后一天。
如果 Day 为 -1,则结果为上一月份的倒数第二天。
如果 Day 超过当前月份的月末,则结果为下一月份中相应的一天。例如,如果 Month 为 4 且 Day 为 31,则结果为 5 月 1 日。
备注
在 Windows 98 或 Windows 2000 环境中,对 Year 参数以两位数表示的年份的解释是基于用户定义的计算机设置的。默认设置是将 0 到 29 的值解释为 2000 年到 2029 年,将 30 到 99 的值解释为 1930 年到 1999 年。对于所有其他 Year 参数,则使用四位数表示年份,例如 1924。
早些的 Windows 版本对两位数所表示年份进行的解释是基于上述默认状态的。若要保证函数返回正确的值,请使用以四位数表示的 Year。
下面的示例展示了负数、零和正数参数值的用法。假设 DateSerial 函数返回一个 Date,它表示目前年份 10 年前的 3 月 1 日的前一天(换言之,就是 10 年前 2 月的最后一天)。
Dim EndFeb As Date = DateSerial(-10, 3, 0)
如果 Month 或 Day 超过其正常范围,则将它应用于下一相应的更大单位。例如,如果指定 32 天,其计算结果为一月余一至四天,所余天数取决于 Month 的值。如果 Year 大于 9999,或者参数在范围 -2,147,483,648 到 2,147,483,647 之外,则发生 ArgumentException 错误。如果三个参数所指定的日期早于公元元年 1 月 1 日 00:00:00 时,或者晚于 9999 年 12 月 31 日 23:59:59,则发生 ArgumentOutOfRangeException 错误。
Date 数据类型包括时间组件。DateSerial 将所有这些组件设置为 0,因而返回的值表示所计算当天的开始。
由于每个 Date 值都由 DateTime 结构支持,所以其方法提供了在组合 Date 值时的附加选项。例如,能够以期望的组件组合使用重载的 DateTime 构造函数之一来填充 Date 变量。下面的示例将 NewDateTime 设置为 1978 年 5 月 6 日上午 8:30 差十分之一秒:
Dim NewDateTime As Date = New Date(1978, 5, 6, 8, 29, 59, 900)
示例
本示例使用 DateSerial 函数返回指定了年月日的日期。
Dim MyDate As Date
' MyDate contains the date for February 12, 1969.
MyDate = DateSerial(1969, 2, 12) ' Return a date.
要求
**模块:**DateAndTime
**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)