How to determine if a date falls on the weekend?

Given a date as input, how can I determine whether the day falls on a weekend?


Solution 1:

There is a Weekday function that takes a Date as an argument and returns the day (1, 2, 3, etc.)

The return values are:

vbSunday (1)  
vbMonday (2)  
vbTuesday (3)  
vbWednesday (4)  
vbThursday (5)  
vbFriday (6)  
vbSaturday (7)  

Assuming that weekends are Saturday and Sunday, the function would look like this:

Public Function IsWeekend(InputDate As Date) As Boolean
    Select Case Weekday(InputDate)
        Case vbSaturday, vbSunday
            IsWeekend = True
        Case Else
            IsWeekend = False
    End Select
End Function

Solution 2:

This is the most direct way to determine if MyDate falls on the weekend:

MsgBox Weekday(MyDate, vbMonday) > 5

The Weekday() function has an optional 2nd parameter that tells it which day of the week the week starts on. The Weekday() function returns an integer from 1 through 7.

I've instructed it to start the week on MONDAY and so SATURDAY would be 6 and SUNDAY would be 7.