When is Sunday Monday?

Time for an infinite wisdom post now.

On my system and in Microsoft Access 2002 the following VBA command:

?WeekdayName(vbSunday)

yields the result

Monday

Awesome!

Why does this happen? Well, it turns out that the help file is right but the actual command in Access doesn’t do what it says on the tin.

Description
Returns a string indicating the specified day of the week.

Syntax
WeekdayName(weekday, abbreviate, firstdayofweek)

The WeekdayName function syntax has these parts:

Part Description
weekday Required. The numeric designation for the day of the week. Numeric value of each day depends on setting of the firstdayofweek setting.
abbreviate Optional. Boolean value that indicates if the weekday name is to be abbreviated. If omitted, the default is False, which means that the weekday name is not abbreviated.
firstdayofweek Optional. Numeric value indicating the first day of the week. See Settings section for values.

Settings
The firstdayofweek argument can have the following values:

Constant Value Description
vbUseSystem 0 Use National Language Support (NLS) API setting.
vbSunday 1 Sunday (default)
vbMonday 2 Monday
vbTuesday 3 Tuesday
vbWednesday 4 Wednesday
vbThursday 5 Thursday
vbFriday 6 Friday
vbSaturday 7 Saturday

Note the help file shows us a third argument that changes the first day of the week. It states that the default is vbSunday (value: 1).

Not true. The default value is 0 and on my system the first day of the week is set to Saturday. This system-wide value is the one that is used to determine which day comes first on those month-at-a-time views such as the one you get by double-clicking the time in the Windows system tray.

Therefore, according to this function on my system, vbSunday is Monday.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s