все Python 3calendarпонятие
calendar.HTMLCalendar
классы календаря
Календарь в виде HTML-таблицы: formatmonth() и formatyear() возвращают разметку с CSS-классами для дней недели.
Синтаксис
hc = calendar.HTMLCalendar(firstweekday=0)
Стилей в разметке нет — только классы (mon…sun, noday для пустых клеток), оформление пишется своим CSS или через атрибуты cssclasses. formatmonth() возвращает str, а formatyearpage() — целую страницу уже в bytes, и записывать её надо в двоичном режиме. Точная разметка меняется между версиями (в 3.15 из <table> убрали атрибуты border и cellpadding), поэтому тесты на равенство строк ломаются.
Примеры
import calendar
html = calendar.HTMLCalendar().formatmonth(2024, 2)
print(html.count('class="noday"')) # → 6 — пустые клетки до 1-го и после 29-го
print('<td class="thu">1</td>' in html) # → True
import calendar
page = calendar.HTMLCalendar().formatyearpage(2024)
print(type(page).__name__) # → bytes
with open('year.html', 'wb') as f:
f.write(page)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности