DatePart Function (Visual Basic)

Returns an Integer value containing the specified component of a given Date value.

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

Parameters

  • Interval
    Required. DateInterval enumeration value or String expression representing the part of the date/time value you want to return.

  • DateValue
    Required. Date value that you want to evaluate.

  • FirstDayOfWeekValue, DayOfWeek
    Optional. A value chosen from the FirstDayOfWeek enumeration that specifies the first day of the week. If not specified, FirstDayOfWeek.Sunday is used.

  • FirstWeekOfYearValue, WeekOfYear
    Optional. A value chosen from the FirstWeekOfYear enumeration that specifies the first week of the year. If not specified, FirstWeekOfYear.Jan1 is used.

Settings

The Interval argument can have one of the following settings.

Enumeration value

String

Part of date/time value to return

DateInterval.Day

d

Day of month (1 through 31)

DateInterval.DayOfYear

y

Day of year (1 through 366)

DateInterval.Hour

h

Hour

DateInterval.Minute

n

Minute

DateInterval.Month

m

Month

DateInterval.Quarter

q

Quarter

DateInterval.Second

s

Second

DateInterval.Weekday

w

Day of week (1 through 7)

DateInterval.WeekOfYear

ww

Week of year (1 through 53)

DateInterval.Year

yyyy

Year

The FirstDayOfWeekValue argument can have one of the following settings.

Enumeration value

Value

Description

FirstDayOfWeek.System

0

First day of week specified in system settings

FirstDayOfWeek.Sunday

1

Sunday (default)

FirstDayOfWeek.Monday

2

Monday (complies with ISO standard 8601, section 3.17)

FirstDayOfWeek.Tuesday

3

Tuesday

FirstDayOfWeek.Wednesday

4

Wednesday

FirstDayOfWeek.Thursday

5

Thursday

FirstDayOfWeek.Friday

6

Friday

FirstDayOfWeek.Saturday

7

Saturday

The FirstWeekOfYearValue argument can have one of the following settings.

Enumeration value

Value

Description

FirstWeekOfYear.System

0

First week of year specified in system settings

FirstWeekOfYear.Jan1

1

Week in which January 1 occurs (default)

FirstWeekOfYear.FirstFourDays

2

Week that has at least four days in the new year (complies with ISO standard 8601, section 3.17)

FirstWeekOfYear.FirstFullWeek

3

First full week in new year

Exceptions

Exception type

Error number

Condition

ArgumentException

5

Interval is invalid.

InvalidCastException

13

DateValue is not coercible to Date.

See the "Error number" column if you are upgrading Visual Basic 6.0 applications that use unstructured error handling. (You can compare the error number against the Number Property (Err Object).) However, when possible, you should consider replacing such error control with Structured Exception Handling Overview for Visual Basic.

Remarks

You can use the DatePart function to evaluate a date/time value and return a specific component. For example, you might use DatePart to calculate the day of the week or the current hour.

If you choose DateInterval.Weekday for the Interval argument, the returned value is consistent with the values of the FirstDayOfWeek enumeration. If you choose DateInterval.WeekOfYear, DatePart uses the Calendar and CultureInfo classes of the System.Globalization namespace to determine your current settings.

The FirstDayOfWeekValue argument affects calculations that use the DateInterval.Weekday and DateInterval.WeekOfYear Interval settings. The FirstWeekOfYearValue argument affects calculations that specify DateInterval.WeekOfYear for Interval.

Since every Date value is supported by a DateTime structure, its methods give you additional options in retrieving date/time parts. For example, you can obtain the entire date value of a Date variable, with the time value set to midnight, as follows:

Dim CurrDatTim As Date = Now   ' Current date and time.
Dim LastMidnight As Date = CurrDatTim.Date   ' At midnight.

Example

This example takes a date and, using the DatePart function, displays the quarter of the year, day of the month, and week of the year in which it occurs, and the day of the week on which it falls. The comments give the expected results for February 12, 2008.

Dim DateString, Msg As String 
Dim ActualDate As Date 
' Enter February 12, 2008, or 2/12/2008.
DateString = InputBox("Enter a date:")
ActualDate = CDate(DateString)

' The first two examples use enumeration values for the interval.
Msg = "Quarter: " & DatePart(DateInterval.Quarter, ActualDate)
' The quarter is 1.
MsgBox(Msg)
Msg = "The day of the month: " & DatePart(DateInterval.Day, ActualDate)
' The day of the month is 12.
MsgBox(Msg)

' The next two examples use string values for the interval parameter.
Msg = "The week of the year: " & DatePart("ww", ActualDate)
' The week of the year is 7.
MsgBox(Msg)
Msg = "The day of the week: " & DatePart("w", ActualDate)
' The day of the week is 3 (Tuesday).
MsgBox(Msg)

Requirements

Namespace: Microsoft.VisualBasic

Module: DateAndTime

Assembly: Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)

See Also

Reference

DateAdd Function (Visual Basic)

DateDiff Function (Visual Basic)

Day Function (Visual Basic)

Format Function

Now Property

Weekday Function (Visual Basic)

Year Function (Visual Basic)

Date Data Type (Visual Basic)

System

Change History

Date

History

Reason

August 2008

Expanded the code in the Example section.

Customer feedback.