Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Mar 23, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Wrap Date Functions in a Class

I've been working on a class module called clsDateInfo that returns various properties of a given date, and using it in some monthly trend graphs. I had to come up with the number of weekdays—not counting weekends—a given date was from the first of the month. The clsDateInfo.WeekDayOfMonth property returns the answer in a flash:
Option Explicit
' clsDateInfo
' Chuck Spohr 9/23/1999
' Set the DateToCheck property of this object and 
' the other properties will return various useful 
' values about that date
Private mdtDate As Date
Public Property Let DateToCheck(pdtDate As Date)
	mdtDate = pdtDate
End Property
Public Property Get DateToCheck() As Date
	DateToCheck = mdtDate
End Property
Public Property Get WeekDayOfMonth() As Integer
	If Me.DayOfWeek = vbSunday Or Me.DayOfWeek = _
		vbSaturday Then
		WeekDayOfMonth = 0
		WeekDayOfMonth = (5 * (Me.WeekOfMonth - 1)) - _
			Me.FirstDayOfWeekOfMonth + Me.DayOfWeek + 1
	End If
End Property
Public Property Get WeekOfMonth() As Integer
	WeekOfMonth = Week  Me.FirstWeekOfMonth + 1
End Property

Public Property Get FirstWeekOfMonth() As Integer
	FirstWeekOfMonth = DatePart("ww", Me.FirstDayOfMonth)
End Property
Public Property Get FirstDayOfWeekOfMonth() As Integer
	FirstDayOfWeekOfMonth = DatePart("w", Me.FirstDayOfMonth)
End Property
Public Property Get Week() As Integer
	Week = DatePart("ww", mdtDate)
End Property
Public Property Get FirstDayOfMonth() As Variant
	FirstDayOfMonth = DateSerial(DatePart("yyyy", _
		mdtDate), DatePart("m", mdtDate), 1)
End Property
Public Property Get DayOfWeek() As Integer
	DayOfWeek = DatePart("w", mdtDate)
End Property
Private Sub Class_Initialize()
	mdtDate = Now()
End Sub
Chuck Spohr
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date