w3resource

Python: Print a 3-column calendar for an entire year


Write a Python program to print a 3-column calendar for an entire year.

Sample Solution:

Python Code:

# Import the calendar module
import calendar
# Create a TextCalendar object starting from Sunday as the first day of the week
cal = calendar.TextCalendar(calendar.SUNDAY)
# Specify the formatting parameters for the year calendar
# year: 2022
# column width: 2
# lines per week: 1
# number of spaces between month columns: 1
# 3: number of months per column
# Generate the formatted year calendar for 2022 using the specified parameters
print(cal.formatyear(2022, 2, 1, 1, 3))

Output:

                           2022                                      
                                                                        
      January               February               March                
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa        
                   1         1  2  3  4  5         1  2  3  4  5        
 2  3  4  5  6  7  8   6  7  8  9 10 11 12   6  7  8  9 10 11 12        
 9 10 11 12 13 14 15  13 14 15 16 17 18 19  13 14 15 16 17 18 19        
16 17 18 19 20 21 22  20 21 22 23 24 25 26  20 21 22 23 24 25 26        
23 24 25 26 27 28 29  27 28                 27 28 29 30 31              
30 31                                                                   
                                                                        
       April                  May                   June                
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa        
                1  2   1  2  3  4  5  6  7            1  2  3  4        
 3  4  5  6  7  8  9   8  9 10 11 12 13 14   5  6  7  8  9 10 11        
10 11 12 13 14 15 16  15 16 17 18 19 20 21  12 13 14 15 16 17 18        
17 18 19 20 21 22 23  22 23 24 25 26 27 28  19 20 21 22 23 24 25        
24 25 26 27 28 29 30  29 30 31              26 27 28 29 30              
                                                                   
        July                 August              September              
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa        
                1  2      1  2  3  4  5  6               1  2  3        
 3  4  5  6  7  8  9   7  8  9 10 11 12 13   4  5  6  7  8  9 10        
10 11 12 13 14 15 16  14 15 16 17 18 19 20  11 12 13 14 15 16 17        
17 18 19 20 21 22 23  21 22 23 24 25 26 27  18 19 20 21 22 23 24        
24 25 26 27 28 29 30  28 29 30 31           25 26 27 28 29 30           
31                                                                      
                                                                        
      October               November              December              
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa        
                   1         1  2  3  4  5               1  2  3        
 2  3  4  5  6  7  8   6  7  8  9 10 11 12   4  5  6  7  8  9 10        
 9 10 11 12 13 14 15  13 14 15 16 17 18 19  11 12 13 14 15 16 17        
16 17 18 19 20 21 22  20 21 22 23 24 25 26  18 19 20 21 22 23 24        
23 24 25 26 27 28 29  27 28 29 30           25 26 27 28 29 30 31        
30 31               

Explanation:

In the exercise above,

  • The code imports the "calendar" module.
  • It creates a "TextCalendar" object named 'cal' starting from Sunday as the first day of the week. This is specified by passing "calendar.SUNDAY" as an argument.
  • It specifies the formatting parameters for generating the year calendar:
    • Year: 2022
    • Column width: 2 (Each day of the month will be displayed within a 2-character width)
    • Lines per week: 1 (Each week will be displayed on a single line)
    • Number of spaces between month columns: 1
    • Number of months per column: 3 (Three months will be displayed side by side in each column)
  • It generates and prints the formatted year calendar for 2022 using the "formatyear()" method of the "TextCalendar" object with the specified parameters.

Flowchart:

Flowchart: Print a 3-column calendar for an entire year.

Python Code Editor :

Contribute your code and comments through Disqus.

Previous: Write a Python program to display formatted text output of a month and start weeks on Sunday.
Next: Write a Python program to display a calendar for a locale.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.