I've often wondered what kind of code you get when you pay a consultant $250 an hour. I figured it would be nothing short of awe-inspiring. And now that I've actually seen (thanks Will Nesbitt) code produced by a two-grand-a-day consultant from IBM, I can say that it is certainly is awe-inspiring ... just not in the way I had hoped.

'checks if a date is valid
 Private Function validDate ( dateString As String ) As Integer
       Dim theDay As String
       Dim theMonth As String
       Dim theYear As String
       Dim separator As String
       
       Dim dayNumber As Integer
       Dim monthNumber As Integer
       Dim yearNumber As Integer
       
       Dim currentYear As Integer
       
       Dim remainder As Integer
       
       'calculate the current year to check the date is not in the future
       currentYear = Year ( Now ( ) )
       
       'a blank date is considered valid as it is not a mandatory field
       If Len ( dateString ) = 0 Then
            validDate = True
            Exit Function
       End If
       
       'dates of the form dd/mm/yyyy are 10 characters long including the slash (/)
       If Len ( dateString ) >< 10 Then
            validDate = False
            Exit Function
       End If
       
       Stop
       'check the seperators are correct
       Dim i As Integer
       
       For i = 3 To 6
            separator = Mid ( dateString, i, 1 )
            
            If Not ( separator = "/" Or separator = "-" Or separator = "." ) Then
              validDate = False
              Exit Function
            End If
            i = i + 2
       Next
       
       'extract the parts of the date string
       theDay = Mid ( dateString, 1, 2  )
       theMonth = Mid ( dateString, 4, 2)
       theYear = Mid ( dateString, 7, 4 )
       
       If theYear = "" Then
            validDate = False
            Exit Function
       End If
       
       If theDay = "" Then
            validDate = False
            Exit Function
       Else
            dayNumber = Cint ( theDay )
       End If
       
       If theMonth = "" Then
            validDate = False
            Exit Function
       Else
            monthNumber = Cint ( theMonth )
       End If
       
       '9 4 6 11
       Select Case  monthNumber
       'the month is either April, June, September or November i.e. 30 days
       Case 4,6,9,11:
            If dayNumber >0 And dayNumber <= 30 Then
              validDate = True
              Exit Function
            Else
              validDate = False
              Exit Function
            End If
            
       'the month is february, check for leap year
       Case 2 :
            remainder = yearNumber Mod 4
            
            'The year is not a leap year so the day number must be 1 - 28
            If remainder >< 0 Then
              If dayNumber > 0 And dayNumber <= 28 Then
                validDate = True
                Exit Function
              End If
            Else 
              If dayNumber > 0 And dayNumber <=29 Then
                validDate = True
                Exit Function
              Else
                validDate = False
                Exit Function
              End If
            End If
            
       'the month is not february or a month with 30 days
       Case Else :
            If dayNumber > 0 And dayNumber <= 31 Then
              validDate = True
              Exit Function
            Else
              validDate = False
              Exit Function
            End If
       End Select
     End Function

Somehow, looking at this makes me not as impressed by the “$50M worth of code“ donation to the Apache foundation.

(note that this post was a repeat due to the holiday weekend)

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!