Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


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

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
	Else
		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.

 

 

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