OO Example (Using generic approach to instance variables)
| ' Class clsDate definition Option Explicit On ' Force explicit variable declaration. Public Class clsDate Private mMonth As Integer Private mDay As Integer Private mYear As Integer Public Sub New( ) mDay = 1 mMonth = 1 mYear = 1900 End Sub Public Function getDay( ) As Integer getDay = mDay End Function Public Sub setDay(ByVal dd As Integer) mDay = ValidateDay(mMonth, dd, mYear) End Sub Public Function getMonth( ) As Integer getMonth = mMonth End Function Public Sub setMonth(ByVal mm As Integer) mMonth = ValidateMonth(mm) End Sub Public Function getYear( ) As Integer getYear = mYear End Function Public Sub setYear(ByVal yyyy As Integer) mYear = ValidateYear(yyyy) End Sub Public Function AsString( ) As String AsString = mMonth & "/" & mDay & "/" & mYear End Function Public Sub SetDate(ByVal mth As Integer, _ ByVal dy As Integer, _ ByVal yr As Integer) mMonth = ValidateMonth(mth) mDay = ValidateDay(mMonth, dy, yr) mYear = ValidateYear(yr) End Sub Private Function ValidateMonth(ByVal mth As Integer) As Integer ValidateMonth = IIf((mth > 0 And mth <= 12), mth, 1) End Function Private Function ValidateDay(ByVal mth As Integer, _ ByVal dy As Integer, _ ByVal yr As Integer) As Integer Dim daysPerMonth( ) As Integer = {0, 31, 28, 31, 30, 31, 30, 31, 31, _ 30, 31, 30, 31} If dy > 0 And dy <= daysPerMonth(mth) Then ValidateDay = dy ElseIf mth = 2 And dy = 29 And isLeapYear(yr) Then ValidateDay = dy Else ' An invalid day was passed to ValidateDay ' Set the day to a default value of 1 ValidateDay = 1 End If End Function
Private Function ValidateYear(ByVal yyyy As Integer) As Integer |
|
Option Explicit
On ' Force explicit variable declaration. |
Please Report Errors in Notes Here