w3resource

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

Python Datetime: Exercise-43 with Solution

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.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/python-exercises/date-time-exercise/python-date-time-exercise-43.php