How to print a calendar for a specific month and year in VB.NET

1 Answer

0 votes
Imports System
Imports System.Globalization

Module CalendarPrinter

    Sub PrintMonth(year As Integer, month As Integer)
        Dim firstDay As New DateTime(year, month, 1)
        Dim daysInMonth As Integer = DateTime.DaysInMonth(year, month)
        Dim monthName As String = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(month)

        Console.WriteLine($"     {monthName} {year}")
        Console.WriteLine("Su Mo Tu We Th Fr Sa")

        ' DayOfWeek: Sunday=0, Monday=1, ... Saturday=6
        Dim offset As Integer = CInt(firstDay.DayOfWeek)

        For i As Integer = 1 To offset
            Console.Write("   ")
        Next

        For day As Integer = 1 To daysInMonth
            Console.Write($"{day,2} ")
            If (offset + day) Mod 7 = 0 Then
                Console.WriteLine()
            End If
        Next

        Console.WriteLine()
    End Sub

    Sub Main()
        PrintMonth(2026, 1)
    End Sub

End Module



' run:
'
'     January 2026
' Su Mo Tu We Th Fr Sa
'              1  2  3 
'  4  5  6  7  8  9 10 
' 11 12 13 14 15 16 17 
' 18 19 20 21 22 23 24 
' 25 26 27 28 29 30 31
' 

 



answered Jan 18 by avibootz

Related questions

...