更新:2007 年 11 月
返回一个 Integer 值,其中包含给定 Date 值的指定组件。
Public Overloads Function DatePart( _
   ByVal Interval As DateInterval, _
   ByVal DateValue As DateTime, _
   Optional ByVal FirstDayOfWeekValue As FirstDayOfWeek = VbSunday, _
   Optional ByVal FirstWeekOfYearValue As FirstWeekOfYear = VbFirstJan1 _
) As Integer
' -or-
Public Overloads Function DatePart( _
    ByVal Interval As String, _
   ByVal DateValue As Object, _
   Optional ByVal DayOfWeek As FirstDayOfWeek = FirstDayOfWeek.Sunday, _
   Optional ByVal WeekOfYear As FirstWeekOfYear = FirstWeekOfYear.Jan1 _
) As Integer
参数
- Interval 
 必选。DateInterval 枚举值或 String 表达式,它表示要返回的日期/时间值部分。
- DateValue 
 必选。所要计算的 Date 值。
- FirstDayOfWeekValue, DayOfWeek 
 可选项。从 FirstDayOfWeek 枚举选择的值,指定一周的第一天。如果未指定,则使用 FirstDayOfWeek.Sunday。
- FirstWeekOfYearValue, WeekOfYear 
 可选项。从 FirstWeekOfYear 枚举选择的值,指定一年的第一周。如果未指定,则使用 FirstWeekOfYear.Jan1。
设置
Interval 参数可以有以下设置之一。
| 枚举值 | 字符串 | 所要返回的日期/时间值部分 | 
|---|---|---|
| DateInterval.Day | d | 月中的哪一天(从 1 到 31) | 
| DateInterval.DayOfYear | y | 年中的哪一天(从 1 到 366) | 
| DateInterval.Hour | h | 小时 | 
| DateInterval.Minute | n | 分钟 | 
| DateInterval.Month | m | 月 | 
| DateInterval.Quarter | q | 季度 | 
| DateInterval.Second | s | 秒 | 
| DateInterval.Weekday | w | 星期几(从 1 到 7) | 
| DateInterval.WeekOfYear | ww | 年中的哪一周(从 1 到 53) | 
| DateInterval.Year | yyyy | 年份 | 
FirstDayOfWeekValue 参数可以有以下设置之一。
| 枚举值 | 值 | 说明 | 
|---|---|---|
| FirstDayOfWeek.System | 0 | 系统设置中指定的周的第一天 | 
| FirstDayOfWeek.Sunday | 1 | 星期日(默认) | 
| FirstDayOfWeek.Monday | 2 | 星期一(依照 ISO 8601 标准第 3.17 节) | 
| FirstDayOfWeek.Tuesday | 3 | 星期二 | 
| FirstDayOfWeek.Wednesday | 4 | 星期三 | 
| FirstDayOfWeek.Thursday | 5 | 星期四 | 
| FirstDayOfWeek.Friday | 6 | 星期五 | 
| FirstDayOfWeek.Saturday | 7 | 星期六 | 
FirstWeekOfYearValue 参数可以有以下设置之一。
| 枚举值 | 值 | 说明 | 
|---|---|---|
| FirstWeekOfYear.System | 0 | 系统设置中指定的年的第一周 | 
| FirstWeekOfYear.Jan1 | 1 | 1 月 1 日所在的周(默认) | 
| FirstWeekOfYear.FirstFourDays | 2 | 至少有四天属于新年的周(依照 ISO 8601 标准第 3.17 节) | 
| FirstWeekOfYear.FirstFullWeek | 3 | 新年的第一个全周 | 
异常
| 异常类型 | 错误号 | 条件 | 
|---|---|---|
| Interval 无效。 | ||
| DateValue 并不强制为 Date。 | 
如果正在升级使用无结构错误处理的 Visual Basic 6.0 应用程序,请参见“错误号”一列。(您可以根据 Number 属性(Err 对象)比较错误号。)然而,如果可能,应当考虑用 Visual Basic 的结构化异常处理概述替换这种错误控制。
备注
可以使用 DatePart 函数来计算日期/时间值并返回一个特定组件。例如,可以使用 DatePart 计算某个日期是星期几或目前为几点钟。
如果为 Interval 参数选择 DateInterval.Weekday,则返回值将与 FirstDayOfWeek 枚举的值一致。如果选择 DateInterval.WeekOfYear,DatePart 将使用 System.Globalization 命名空间的 Calendar 和 CultureInfo 类来确定当前的设置。
FirstDayOfWeekValue 参数影响使用 DateInterval.Weekday 和 DateInterval.WeekOfYear Interval 设置的计算。FirstWeekOfYearValue 参数影响将 DateInterval.WeekOfYear 指定为 Interval 的计算。
因为每个 Date 值都由 DateTime 结构支持,其方法在检索日期/时间部分中提供了额外的选项。例如,将时间值设置为午夜,可以获取 Date 变量的完整日期值,如下所示:
Dim CurrDatTim As Date = Now   ' Current date and time.
Dim LastMidnight As Date = CurrDatTim.Date   ' At midnight.
示例
本示例取得一个日期,并使用 DatePart 函数显示该日期所在的季度。
Dim FirstDate, Msg As String   'Declare variables.
Dim SecondDate As Date
FirstDate = InputBox("Enter a date:")
SecondDate = CDate(FirstDate)
Msg = "Quarter: " & DatePart(DateInterval.Quarter, SecondDate)
MsgBox(Msg)
要求
**模块:**DateAndTime
**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)