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
'