Python Calendar Module
Python Calendar
This module allows you to output calendars like the Unix cal program and provides additional useful functions related to the calendar. By default, these calendars have Monday as the first day of the week, and Sunday as the last (the European convention). Use setfirstweekday() to set the first day of the week to Sunday (6) or to any other weekday. Parameters that specify dates are given as integers. For related functionality, see also the datetime and time modules.
Calender:
Name | Description |
---|---|
iterweekdays() method | Return an iterator for the weekdays numbers that will be used for one week. |
itermonthdates() method | The itermonthdates() method is used to return an iterator for the month month (1-12) in the year year. |
itermonthdays2() method | The itermonthdays2() method is used to return an iterator for the month month in the year year similar to itermonthdates(). |
itermonthdays() method | The itermonthdays() method is used to return an iterator for the month month in the year year similar to itermonthdates(). |
monthdatescalendar() method | The monthdatescalendar() method is used to return a list of the weeks in the month month of the year as full weeks. Weeks are lists of seven datetime.date objects. |
monthdays2calendar() method | The monthdays2calendar() method is used to return a list of the weeks in the month month of the year as full weeks. Weeks are lists of seven tuples of day numbers and weekday numbers. |
monthdayscalendar() method | The monthdayscalendar() method is used to return a list of the weeks in the month month of the year as full weeks. Weeks are lists of seven day numbers. |
yeardatescalendar() method | The yeardatescalendar() method is used to return the data for the specified year ready for formatting. The return value is a list of month rows. |
yeardays2calendar() method | The yeardays2calendar() method is used to return the data for the specified year ready for formatting (similar to yeardatescalendar()). |
yeardayscalendar() method | The yeardayscalendar() method is used to return the data for the specified year ready for formatting (similar to yeardatescalendar()) |
text-calendar-formatmonth() method | The formatmonth() method is used to return a month’s calendar in a multi-line string. |
text-calendar-prmonth() method | The prmonth() method is used to Print a month’s calendar as returned by formatmonth(). |
text-calendar-formatyear() method | The formatyear() method is used to return a m-column calendar for an entire year as a multi-line string. |
text-calendar-pryear() method | The pryear() method is used to Print the calendar for an entire year as returned by formatyear(). |
html-calendar-formatmonth() method | The formatmonth() method is used to return a month’s calendar as an HTML table. |
html-calendar-formatyear()method | The formatyear() method is used to return a year’s calendar as an HTML table. |
html-calendar-formatyearpage() method | The formatyearpage() method is used to return a year’s calendar as a complete HTML page. |
setfirstweekday() method | Sets the weekday (0 is Monday, 6 is Sunday) to start each week. |
firstweekday() method | The firstweekday() method is used to returns the current setting for the weekday to start each week. |
isleap() method | The isleap() method is used to returns True if year is a leap year, otherwise False. |
leapdays() method | The leapdays() method is used to returns the number of leap years in the range from y1 to y2 (exclusive), where y1 and y2 are years. |
weekday() method | The weekday() method is used to returns the day of the week (0 is Monday) for year (1970–...), month (1–12), day (1–31). |
weekheader() method | The weekheader() method is used to return a header containing abbreviated weekday names. n specifies the width in characters for one weekday. |
monthrange() method | The monthrange() method is used to returns weekday of first day of the month and number of days in month, for the specified year and month. |
monthcalendar() method | The monthrange() method is used to returns a matrix representing a month’s calendar. |
prmonth() method | The prmonth() method is used to prints a month’s calendar as returned by month(). |
month() method | The month() method is used to returns a month’s calendar in a multi-line string using the formatmonth() of the TextCalendar class. |
prcal() method | The prcal() method is used to prints the calendar for an entire year as returned by calendar(). |
calendar() method | The calendar() method is used to returns a 3-column calendar for an entire year as a multi-line string using the formatyear() of the TextCalendar class. |
Previous: Python Module
Next: Python Calendar Module iterweekdays()
Test your Python skills with w3resource's quiz
Python: Tips of the Day
Find the index of an item in a list?
Given a list ["foo", "bar", "baz"] and an item in the list "bar", how do I get its index (1) in Python?
>>> ["foo", "bar", "baz"].index("bar") 1
Caveats follow
Note that while this is perhaps the cleanest way to answer the question as asked, index is a rather weak component of the list API, and I can't remember the last time I used it in anger. It's been pointed out to me in the comments that because this answer is heavily referenced, it should be made more complete. Some caveats about list.index follow. It is probably worth initially taking a look at the documentation for it:
list.index(x[, start[, end]])
Linear time-complexity in list length
An index call checks every element of the list in order, until it finds a match. If your list is long, and you don't know roughly where in the list it occurs, this search could become a bottleneck. In that case, you should consider a different data structure. Note that if you know roughly where to find the match, you can give index a hint. For instance, in this snippet, l.index(999_999, 999_990, 1_000_000) is roughly five orders of magnitude faster than straight l.index(999_999), because the former only has to search 10 entries, while the latter searches a million:
>>> import timeit >>> timeit.timeit('l.index(999_999)', setup='l = list(range(0, 1_000_000))', number=1000) 9.356267921015387 >>> timeit.timeit('l.index(999_999, 999_990, 1_000_000)', setup='l = list(range(0, 1_000_000))', number=1000) 0.0004404920036904514
Only returns the index of the first match to its argument
A call to index searches through the list in order until it finds a match, and stops there. If you expect to need indices of more matches, you should use a list comprehension, or generator expression.
>>> [1, 1].index(1) 0 >>> [i for i, e in enumerate([1, 2, 1]) if e == 1] [0, 2] >>> g = (i for i, e in enumerate([1, 2, 1]) if e == 1) >>> next(g) 0 >>> next(g) 2
Most places where I once would have used index, I now use a list comprehension or generator expression because they're more generalizable. So if you're considering reaching for index, take a look at these excellent Python features.
Throws if element not present in list
A call to index results in a ValueError if the item's not present.
>>> [1, 1].index(2) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: 2 is not in list
If the item might not be present in the list, you should either
- Check for it first with item in my_list (clean, readable approach), or
- Wrap the index call in a try/except block which catches ValueError (probably faster, at least when the list to search is long, and the item is usually present.)
Ref: https://bit.ly/2ALwXwe
- New Content published on w3resource:
- HTML-CSS Practical: Exercises, Practice, Solution
- Java Regular Expression: Exercises, Practice, Solution
- Scala Programming Exercises, Practice, Solution
- Python Itertools exercises
- Python Numpy exercises
- Python GeoPy Package exercises
- Python Pandas exercises
- Python nltk exercises
- Python BeautifulSoup exercises
- Form Template
- Composer - PHP Package Manager
- PHPUnit - PHP Testing
- Laravel - PHP Framework
- Angular - JavaScript Framework
- Vue - JavaScript Framework
- Jest - JavaScript Testing Framework