|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Visual Basic Helper
Routines Pure VB: Methods to Determine the Last Day of the Month |
||
Posted: | Monday March 25, 2002 | |
Updated: | Monday December 26, 2011 | |
Applies to: | VB4-32, VB5, VB6 | |
Developed with: | VB6, Windows XP | |
OS restrictions: | None | |
Author: | Newsgroup contributors | |
Related: |
Pure VB: Methods to Determine the Last Day of the Month Pure VB: Methods to Determine Number of Days in a Month Pure VB: Determining Leap Years VarMonthName: Retrieve Localized Month Names VarWeekdayName: Retrieve Localized Weekday Names |
|
Prerequisites |
None. |
|
A
variety of routines to determine whether a specified date is the last day
of the current month, or, given a month and year, the last day of that
month. All have been contributed over time to either the msnews.public.vb.*
or comp.lang.vb.* newsgroups. (LDiM = LastDayInMonth, LDoM=LastDayOfMonth). Use the method you find most
appropriate.
Note: The routines presented here are very similar, in both construction and purpose/end result, with those presented on Pure VB: Methods to Determine Number of Days in a Month. Therefore examination of the routines on that page may provide additional information or insight.
|
BAS Module Code |
None. |
|
Form Code |
Toss a command button and label onto a form, and set the Index property of each to 0 to create control arrays. And add the following code: |
|
Option Explicit '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Copyright ©1996-2011 VBnet/Randy Birch, All Rights Reserved. ' Some pages may also contain other copyrights by the author. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Distribution: You can freely use this code in your own ' applications, but you may not reproduce ' or publish this code on any web site, ' online service, or distribute as source ' on any media without express permission. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub Form_Load() Dim x As Long 'load and position required controls For x = 0 To 4 If x > 0 Then Load Command1(x) Load Label1(x) End If Command1(x).Move 300, 500 + (400 * (x + 1)), 2535 Command1(x).Visible = True Label1(x).Move Command1(x).Width + _ Command1(x).Left + 400, _ 430 * (x + 1), 2535 Label1(x).Move Command1(x).Width + _ Command1(x).Left + 400, _ Command1(x).Top + _ Command1(x).Height - _ Label1(x).Height Label1(x).Visible = True Label1(x).Caption = "Ready" Next With Command1 .Item(0).Caption = "LDiM 1 - Rothstein" .Item(1).Caption = "LDoM 1 - Copeland 1" .Item(2).Caption = "LDoM 1 - Copeland 2" .Item(3).Caption = "LDoM 1 - Jacquemin" .Item(4).Caption = "LDoM 1 - Kenny (MS)" End With End Sub Private Sub Command1_Click(Index As Integer) Dim result Dim sDate As Date sDate = Format$("02/28/2002", "short date") Select Case Index Case 0: result = LastDayInMonth(Year(Date), Month(Date)) Case 1: result = LastDayOfMonth1(sDate) Case 2: result = LastDayOfMonth2(sDate) Case 3: result = LastDayOfMonth3(sDate) Case 4: result = LastDayOfMonth4(sDate) End Select Label1(Index).Caption = result End Sub Function LastDayInMonth(YearValue As Long, _ MonthValue As Long) As Long 'Rick Rothstein in microsoft.public.vb.general.discussion 'For the specified year and month, 'return the last day of that month LastDayInMonth = Day(DateSerial(YearValue, _ MonthValue + 1, 0)) End Function Private Function LastDayOfMonth1(ByVal d As Date) As Boolean 'George Copeland in comp.lang.basic.visual LastDayOfMonth1 = CBool(DatePart("m", d) - _ DatePart("m", (DateAdd("d", 1, d)))) End Function Private Function LastDayOfMonth2(ByVal d As Date) As Boolean 'George Copeland in comp.lang.basic.visual LastDayOfMonth2 = CBool(Month(d) - Month(DateAdd("d", 1, d))) End Function Private Function LastDayOfMonth3(ByVal d As Date) As Boolean 'Keith Jacquemin in comp.lang.basic.visual If Month(d) <> Month(d + 1) Then LastDayOfMonth3 = True Else LastDayOfMonth3 = False End If End Function Private Function LastDayOfMonth4(ByVal srcDate As Date) As Date 'Kenny (ms support) in microsoft.public.vb.general.discussion 'passed a source date, returns a complete 'date for the last day of the month Dim d As Date d = DateAdd("m", 1, srcDate) d = DateAdd("d", -Day(d), d) LastDayOfMonth4 = d End Function |
Comments |
|
|
|
|||||
|
|||||
|
|||||
Copyright ©1996-2011 VBnet and Randy Birch. All Rights Reserved. |