mdlDateTimeEx
Option Compare Database
Option Explicit
'月初の年月日を返す。
Public Function FirstDayOfMonth(intYear As Integer, intMonth As Integer) As Variant
On Error GoTo ErrorHandler
FirstDayOfMonth = DateValue(intYear & "/" & intMonth & "/" & "1")
Exit Function
ErrorHandler:
Err.Raise Err.Number, Err.Source, Err.Description, Err.HelpFile, Err.HelpContext
End Function
Public Sub Test_FirstDayOfMonth()
Debug.Assert FirstDayOfMonth(2023, 1) = #1/1/2023#
Debug.Assert FirstDayOfMonth(2023, 2) = #2/1/2023#
Debug.Assert FirstDayOfMonth(2023, 3) = #3/1/2023#
Debug.Assert FirstDayOfMonth(2023, 4) = #4/1/2023#
Debug.Assert FirstDayOfMonth(2023, 5) = #5/1/2023#
Debug.Assert FirstDayOfMonth(2023, 6) = #6/1/2023#
Debug.Assert FirstDayOfMonth(2023, 7) = #7/1/2023#
Debug.Assert FirstDayOfMonth(2023, 8) = #8/1/2023#
Debug.Assert FirstDayOfMonth(2023, 9) = #9/1/2023#
Debug.Assert FirstDayOfMonth(2023, 10) = #10/1/2023#
Debug.Assert FirstDayOfMonth(2023, 11) = #11/1/2023#
Debug.Assert FirstDayOfMonth(2023, 12) = #12/1/2023#
Debug.Assert FirstDayOfMonth(100, 1) = #1/1/100#
Debug.Assert FirstDayOfMonth(9999, 12) = #12/1/9999#
'環境依存
Debug.Print FirstDayOfMonth(0, 1) '2000年
Debug.Print FirstDayOfMonth(49, 1) '2049年
Debug.Print FirstDayOfMonth(50, 1) '1950年
Debug.Print FirstDayOfMonth(99, 1) '1999年
End Sub