General: Programming Test #1

There was this test in one of the job interviews I had recently that I did not ace well.  It was a written programming test.  I have not been given a written programming test for a while so I was caught off-guard.  If this was a hands-on, I would have aced it.  Anyways, here is some more details about the problem.

Given an input of 1-7 indicating the day of the week (Sunday being a 1, Monday a 2, and so on…) for the first day of the month, print a calendar for that month.  I fired my Visual Studio 2005 and started coding in VB.  After 3 iterations of the code (I like to make my code small and easy to understand which is why I usually do more than 1 iterations of the code), I came up with this solution:

    Public Sub PrintMonthCalendar(ByVal DayOfWeekFirstDayOfMonth As Integer, _
                                    ByVal NumberOfDaysInMonth As Integer)
        Dim i As Integer
        Dim intDay As Integer = 1

        Console.WriteLine("Su Mo Tu We Th Fr Sa ")
        For i = 1 To NumberOfDaysInMonth + (DayOfWeekFirstDayOfMonth - 1)
            If i < DayOfWeekFirstDayOfMonth Then
                Console.Write("   ")
            Else
                If i Mod 7 = 0 Then
                    Console.WriteLine("{0,2} ", intDay)
                Else
                    Console.Write("{0,2} ", intDay)
                End If
                intDay += 1
            End If
        Next

        Console.ReadLine()
    End Sub

Here are some sample outputs of the program:

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s