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.