[AccessD] A2203: Date Format Issues

Gustav Brock Gustav at cactus.dk
Fri Jul 18 04:01:03 CDT 2008


Hi Darryl

This can be done a lot simpler. The trick is the day of zero which forces DateSerial to return the date before the first of the month.

<code>

Public Function DaysInMonth(ByVal datDate As Date) As Integer
  
' Returns count of days of month of datDate.
' 2005-01-06. Cactus Data ApS, CPH.

  Dim intDays As Integer
  
  intDays = Day(DateSerial(Year(datDate), Month(datDate) + 1, 0))
  DaysInMonth = intDays
  
End Function

</code>

/gustav


>>> Darryl.Collins at coles.com.au 18-07-2008 03:15 >>>
Hi Darren,

Did you try Drews suggestion?

>From Access Help:

'========================================================
DateSerial, Day, Month, and Year Function Examples

The following example uses the DateSerial function together with the Year, Month, and Day functions to return the number of days in a month. You can pass either a date or a string to the DaysInMonth function.

Function DaysInMonth(dteInput As Date) As Integer
    Dim intDays As Integer

    ' Add one month, subtract dates to find difference.
    intDays = DateSerial(Year(dteInput), _
        Month(dteInput) + 1, Day(dteInput)) _
        DateSerial(Year(dteInput), _
        Month(dteInput), Day(dteInput))
    DaysInMonth = intDays
    Debug.Print intDays
End Function
The following Sub procedure shows several different ways that you might call the DaysInMonth function.

Sub CallDaysInMonth()
    Dim intDays As Integer
    intDays = DaysInMonth(#4/1/96#)
    intDays = DaysInMonth("4-1-96")
    intDays = DaysInMonth("April 1, 1996")
End Sub
'================================================================






More information about the AccessD mailing list