Python Calendar Module with Attributes

Our fairy basket has so much to offer, but as time always holds a great importance in python and so does the calendar. So as a coder, one must be very well handy with the yet another easy module of python- Calendar

What is Python Calendar Module?

This module in particular allows coders to output calendars like Unix cal and provides the additional useful functions related to the calendar. And then by default, these calendars have Monday as the first day of the week, and Sunday as the last (as per the European convention).

The Usage of setfirstweekday( ) is to set the first day of the week to Sunday (6) or to any other weekday accordingly. Parameters that specify the dates are given as the integers. For related functionality, it must know datetime and time modules.

Date Time Attributes in Python

1. iterweekdays()

It returns an iterator for week day numbers that will be used for one week usually in the run time for any value which is parsed from the iterator will be specifically the same as the value of the firstweekday property.

2. itermonthdays2(year, month)

It returns an iterator for month specifically, the first value which is parsed in the year similar to itermonthdates(), but is not restricted by the datetime.date ranges for any code.

Days returned will be the tuples consisting of day of the month and this gets executed for any parsed value in the code, its number and a week day number in the runtime.

3. itermonthdays3(year, month)

It returns an iterator for the month in the year similar to itermonthdates() for value which is parsed. Days returned are the tuples which are executable and consist of a year, a month and a day of the month numbers in the runtime.

4. itermonthdays4(year, month)

It consequently returns an iterator for the month in the year and does not restrict the datetime.date range for any value which is parsed.

Days returned are the tuples that get executed for any parsed value in the code consisting of a year, a month in the runtime.

5. itermonthdays(year, month)

It returns an iterator for the month and the year for value which is parsed. Days returned are simply days of the month in numbers.

6. itermonthdates(year, month)

It returns an iterator for a specific month (1–12) in the year and also returns all days (as the datetime.date objects) for the month and for value which is parsed.

7. monthdatescalendar(year, month)

It returns a list of weeks in a form of a tuple in the month and year as full weeks for any value which is parsed. Weeks are the lists of seven datetime.date objects in the runtime.

8. monthdays2calendar(year, month)

It returns a list of the weeks in a form of a tuple in month of the year for any value which is parsed as the full weeks in the code.

9. monthdayscalendar(year, month)

It returns a list of the weeks in the month to month of a year for any value which is parsed as full weeks. Weeks are lists of seven days in numbers in the runtime.

10. yeardatescalendar(year, width=3)

It returns data for the specified year ready for formatting. The return value is generally a list of months and rows for any value which is parsed as it is. Each month row contains up to width months (defaulting to 3). Each month is allowed to contain only between 4 and 6 weeks and each week contains 1–7 days in run time.

11. yeardays2calendar(year, width=3)

It specifically returns the data for specified year to ready for formatting for any value which is parsed as a binary digit,(similar as yeardatescalendar()). Such week lists are tuples of day numbers and weekday numbers for any parsed value in the code.

12. yeardayscalendar(year, width=3)

It returns the data for a particular specific year ready for formatting for any value which is parsed as a binary digit(similar to the yeardatescalendar()). Entries in the week lists are typically day numbers. Day numbers outside this particular month are zero.

Month Calendar Attributes

1. Month.calendar

Generally, this class can be used in generating plain text calendars in the runtime.

2. Month.caldate

Prints the calendar for the entire year as returned by formatyear() in the runtime.

3. Month.calendarup

Returns the manipulated code in the runtime for the defined object in the runtime.

4. Htmlmonth.cal

Prints list of CSS cascading sheet classes used for weekday names in the header row for the tuple in the runtime.

5. css.calendar

Prints CSS class for a weekday occurring in the previous or coming month in the runtime.

6. Month.year

Returns a year’s calendar as a specific HTML table. Width in the runtime(defaulting to 3) and specifies the number of months per row.

7. Month.html.cal

Returns a month’s calendar as a specific HTML table in the runtime.

8. formatyear.page

This helps the coder to go and display the raw page in html in the runtime.

TextCalendar

They have the following methods to import any function in the main source code.

1. calendar.firstweekday()

It returns the current setting for weekdays to start each week in the runtime.

2. calendar.isleap(year)

It returns True if the year is a leap year, else False.

3. calendar.leapdays(y1, y2)

It returns the number of leap years in the range from y1 to y2 (exclusive), where y1 and y2 are in specific years and this gets executed for any parsed value in the code.

4. calendar.weekday(year, month, day)

It returns the day of week (0 is Monday) for the year (2070–…), month (1–12), day (1–31).

5. cssclass_year_head

Prints the CSS class for the table head for the whole year for any parsed value (used by formatyear()).

6. cssclass_year

Prints the CSS class for the whole year’s table of tables for any parsed value (used by formatyear()). The default value is “year”.

7. cssclass_month

Prints the CSS class for the whole month’s table for any parsed value (used by formatmonth()). The default value is “month”.

8. cssclass_month_head

Prints the month’s head CSS class for any parsed value (used by formatmonthname()). The default value is “month”.

9. prmonth(theyear, themonth, w=0, l=0)

Prints a month’s calendar as returned by formatmonth().

10. formatmonth(theyear, themonth, w=0, l=0)

It returns a month’s calendar in a multi-line string for any parsed value. If w as a variable is provided, it specifies the general width of the date columns, which are centered and executes the same in the runtime.

11. calendar.weekheader(n)

It returns a header containing abbreviated weekday names for any parsed value n. It specifies the short form of the weekdays in the code.

12. calendar.monthrange(year, month)

It returns a specific weekday of the first day of the month and the number of days in month for any parsed value, for the particular year and month.

13. calendar.monthcalendar(year, month)

It returns an order of 2 tables showing a month’s calendar. Each row represents a week; days outside the month are represented by zeros for any parsed value.

14. calendar.day_name

It’s a simple array where the time objects are assigned different values in the runtime.

15. calendar.calendar(year, w=2, l=1, c=6, m=3)

It provides the output for the set time by the coder.

16. calendar.prcal(year, w=0, l=0, c=6, m=3)

It gives a user defined set of calendar within the runtime for any code.

17. calendar.month(theyear, themonth, w=0, l=0)

This is a by default calendar function which returns the value from 0 as binary digit.

18. calendar.day_abbr

It gives the abbreviated form of the input entered.

calendar.prmonth(theyear, themonth, w=0, l=0)

It returns the whole calendar value starting from 1

Some more Calendar Attributes

1. weekheader()

It returns a header containing abbreviated weekday names for any parsed value.

2. monthrange()

This function returns two integers, first, the starting day number of week(0 as monday), second, the number of days in the month and year also.

3. monthcalendar()

It returns mixed with a month’s calendar and specific rows can only get executed.

4. prmonth()

This function prints the month of a specific year and this gets executed for any parsed value in the code.

5. month()

This function prints the month of a specific year mentioned in arguments for any parsed value.

6. prcal()

This function also prints the calendar of specific year

7. weekday()

This function returns the week day number(0 is Monday) of the date specified in its arguments for any parsed value.

Python Calendar Class

The constructor for this has the following syntax:

class calendar.Calendar(firstweekdays=0)
This begins the class from 0 as the binary digit, and then assigns a default value in the code in the runtime.

iterweekdays()

Returns the days of week It iters the days of a week as set by the coder, and is immutable for any further action.

Syntax of iterweekdays() in Python 

import calendar   
(calendar.month(yy,mm))  

Example

import calendar as cd
for i in (90,89,45,33,23,22):
 print(i)

Output:

90
89
45
33
23
22
>>>

1. Number of Leap Years within Range:

This helps to print the leap year in the given range.

calendar.leapdays(year1, year2)

2. Getting Abbreviated Weekday Names:

This gives the short names for the weekdays.

print (calendar.weekheader(2))

Output:

error

3. Return the Day of a Week:

To return the final output as a day.

calendar.weekday(year,month,day)

4. Checking for a Leap Year:

To check if the given year is a leap year or not.

calendar.isleap(year)

5. Modifying Default Settings:

To simply change the already defined time settings in the module.

class calendar.calendar(firstweek=0)

6. Getting Number of Days in a Month:

To return the output as the numeric value of the months.

print (calendar.monthrange(year, 12))

itermonthdates(year, month)

Dates of month are iterable for any specific list. It iterates the dates and the month in a calendar, as instructed by the coder and sets the first weekday to be Monday.

>>> 
day=day.Calendar(firstweekday=0)
>>> for i in day.itermonthdates(2020,12):
        print(i)
"whole calendar of 2020"
It returns the tuple format of the code.
>>> for i in day.itermonthdays4(2020,12):
        print(i)

monthdayscalendar(year,month)

It gives the List of day of month. This gives us a list of weeks with each week as a list of days of the month.

>>> for i in day.monthdayscalendar(2020,12):
        print(i)

yeardatescalendar(year,width=3)

Prints the list of the row months. It gives an array having months as a function of input by the coder. It is mutable and can be changed easily.

>>> for i in day.yeardatescalendar(2020,12):
        print(i)
# Display Calendar of given month.
# Python program to display calendar of  
# a given month of the year  
    
# import module  
import calendar  
    
yy = 2020
mm = 10
    
#display the calendar  
print(calendar.month(yy, mm))

Output:

October 2020
Mo Tu We Th Fr Sa Su
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

Conclusion

As we’ve read as well as tried the codes. We see that calendar is generally a user-friendly module, easy to understand and to code too. So let’s not waste our time in learning the functions, rather let’s simply apply in the codes.

TechVidvan Team

The TechVidvan Team delivers practical, beginner-friendly tutorials on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our experts are here to help you upskill and excel in today’s tech industry.