Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB4,VB5,VB6
Expertise: Intermediate
Apr 29, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Tricks with DateSerial

The DateSerial function has an interesting feature: it doesn't raise errors when you pass it an invalid month or day number. Instead, it evaluates the date as if the arguments were valid. For example, DateSerial(2000, 1, 32) returns the Date value of February 1, 2000. This behavior can (and should) be considered as a bug, but it's a fact that it has never changed since VB1 and it is highly unlikely that Microsoft will change it in future versions of VB.

You can take advantage of this feature by writing date functions that would be rather difficult to write otherwise. For example:

' the last day of a givan month
Function EndOfMonth(Year As Integer, Month As Integer) As Date
    EndOfMonth = DateSerial(Year, Month + 1, 0)
End Function

' number of days in a month
Function DaysInMonth(Year As Integer, Month As Integer) As Integer
    DaysInMonth = Day(DateSerial(Year, Month + 1, 0))
End Function

' True if leap year
Function IsLeapYear(Year As Integer) As Boolean
    IsLeapYear = (Day(DateSerial(Year, 3, 0)) = 29)
End Function
Francesco Balena
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



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