Python calendar.monthcalendar() Function
The Python calendar.monthcalendar() function is used to generate a matrix representation of a month's calendar.
This function returns a list of weeks, where each week is a list of integers representing days. Days outside the month are represented by zeros.
Syntax
Following is the syntax of the Python calendar.monthcalendar() function
calendar.monthcalendar(year, month)
Parameters
This function accepts the following parameters
- year: The year of the month to be displayed.
- month: The month (1-12) to be displayed.
Return Value
This function returns a list of weeks, where each week is a list of 7 integers. Days that belong to the month are represented by their respective date numbers, and days outside the month are represented by 0.
Example: Getting Month Calendar as a Matrix
In this example, we generate a matrix for March 2025 using the Python calendar.monthcalendar() function
import calendar # Generate March 2025 matrix month_matrix = calendar.monthcalendar(2025, 3) print(month_matrix)
Following is the output obtained
[[0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0]]
Example: Iterating Over the Calendar Matrix
We can iterate over the matrix to display the month in a readable format as shown in the example below
import calendar # Generate March 2025 matrix month_matrix = calendar.monthcalendar(2025, 3) for week in month_matrix: print(week)
Following is the output of the above code
[0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0]
Example: Checking if a Specific Day is in a Week
We can check if a specific date is in a given week using this function
import calendar
# Generate March 2025 matrix
month_matrix = calendar.monthcalendar(2025, 3)
# Check if 15th is in a particular week
for week in month_matrix:
if 15 in week:
print("15th March is in this week:", week)
We get the output as shown below
15th March is in this week: [10, 11, 12, 13, 14, 15, 16]
Example: Counting Number of Weeks in a Month
We can determine how many weeks exist in a given month using the calendar.monthcalendar() function
import calendar
# Generate March 2025 matrix
month_matrix = calendar.monthcalendar(2025, 3)
# Count the number of weeks
num_weeks = len(month_matrix)
print("Number of weeks in March 2025:", num_weeks)
The result produced is as follows
Number of weeks in March 2025: 6