Please note, this is a STATIC archive of website www.w3resource.com from 19 Jul 2022, cach3.com does not collect or store any user information, there is no "phishing" involved.
w3resource

Python: Display a simple, formatted calendar of a given year and month

Python Datetime: Exercise-48 with Solution

Write a Python program to display a simple, formatted calendar of a given year and month.

Sample Solution:

Python Code:

import calendar
print('Print a calendar for a year and month:')
month = int(input('Month (mm): '))
year = int(input('Year (yyyy): '))
print('\n')
 
calendar.setfirstweekday(calendar.SUNDAY)
cal = calendar.monthcalendar(year, month)
 
if len(str(month)) == 1:
    month = '0%s' % month
 
# Header
print('|++++++ %s-%s +++++|' % (month, year))
print('|Su Mo Tu We Th Fr Sa|')
print('|--------------------|')
 
# display calendar
border = '|'
for week in cal:
    line = border

      
    for day in week:
        if day == 0:
      # 3 spaces for blank days       
         line += '   ' 
        elif len(str(day)) == 1:
            line += ' %d ' % day
        else:
         line += '%d ' % day
    # remove space in last column
    line = line[0:len(line) - 1]  
    line += border
    print(line)
 
print('|--------------------|\n')

Sample Output:

Print a calendar for a year and month:                                                                        
Month (mm): 05                                                                                                
Year (yyyy): 2017                                                                                             
                                                                                                              
                                                                                                              
|++++++ 05-2017 +++++|                                                                                        
|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         |                                                                                        
|--------------------|   

Flowchart:

Flowchart: Display a simple, formatted calendar of a given year and month.

Python Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Python program display a list of the dates for the 2nd Saturday of every month for a given year.
Next: Write a Python program to convert a string into datetime.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Python: Tips of the Day

Find current directory and file's directory:

To get the full path to the directory a Python file is contained in, write this in that file:

import os 
dir_path = os.path.dirname(os.path.realpath(__file__))

(Note that the incantation above won't work if you've already used os.chdir() to change your current working directory, since the value of the __file__ constant is relative to the current working directory and is not changed by an os.chdir() call.)

To get the current working directory use

import os
cwd = os.getcwd()

Documentation references for the modules, constants and functions used above:

  • The os and os.path modules.
  • The __file__ constant
  • os.path.realpath(path) (returns "the canonical path of the specified filename, eliminating any symbolic links encountered in the path")
  • os.path.dirname(path) (returns "the directory name of pathname path")
  • os.getcwd() (returns "a string representing the current working directory")
  • os.chdir(path) ("change the current working directory to path")

Ref: https://bit.ly/3fy0R6m