DateSerial Function

Description

Returns a Date for a specified year, month, and day.

Syntax

DateSerial(year, month, day)

The DateSerial function syntax has these named arguments:

Part Description
year Number between 100 and 9999, inclusive, or a numeric expression.
month Any numeric expression.
day Any numeric expression.


Remarks

To specify a date, such as December 31, 1991, the range of numbers for each DateSerial argument should be in the normally accepted range for the unit; that is, 1 – 31 for days and 1 – 12 for months. However, you can also specify relative dates for each argument using any numeric expression that represents some number of days, months, or years before or after a certain date.

The following example uses numeric expressions instead of absolute date numbers. Here the DateSerial function returns a date that is the day before the first day (1 - 1) of two months before August (8 - 2) of 10 years before 1990 (1990 - 10); in other words, May 31, 1980.


DateSerial(1990 - 10, 8 - 2, 1 - 1)

For the year argument, values between 0 and 99, inclusive, are interpreted as the years 1900 – 1999. For all other year arguments, use a complete four-digit year (for example, 1800).

When any argument exceeds the normally accepted range for that argument, it increments to the next larger unit as appropriate. For example, if you specify 35 days, it is evaluated as one month and some number of days, depending on where in the year it is applied. However, if any single argument is outside the range -32,768 to 32,767, or if the date specified by the three arguments, either directly or by expression, falls outside the acceptable range of dates, an error occurs.

See Also

Date Function, Date Statement, DateValue Function, Day Function, Month Function, Now Function, TimeSerial Function, TimeValue Function, Weekday Function, Year Function.

Example

This example uses the DateSerial function to return the date for the specified year, month, and day.


' MyDate contains the date for February 12, 1969.= DateSerial(1969, 2, 12)                    ' Return a date.

The following example uses the DateSerial function to return the number of days in a month. The function DaysInMonth requires a Date argument, since February will have an extra day in a leap year. If you pass a date literal to the DaysInMonth function, make sure it is delimited by number signs (#). For example, #2-1-95# or #February 1, 1995# are valid values for the Date argument. You can also pass in a string, such as “2-1-95”.

This example uses the Year, Month, and Day functions to return the year, month, and day parts of the date passed in.


Sub DaysInMonth(dteAny As Date)
    Dim intDays As Integer

    ' Add one month, subtract dates to find difference.
    intDays = DateSerial(Year(dteAny), Month(dteAny) + 1, Day(dteAny)) _
        - DateSerial(Year(dteAny), Month(dteAny), Day(dteAny))
    Debug.Print intDaysSub

The next example uses named arguments to provide values to the DateSerial function. Since the arguments are named, their relative position is not important. Note the difference between using named arguments in the following example, and using the Year, Month, and Day functions in the preceding example.


Sub ConstructDate()
    Debug.Print DateSerial(Day:=1, Month:=2, Year:=1995)Sub