Найти в Дзене
IT Start | Python

Отображение календаря на Python

Календарь — это полезный инструмент для организации времени и работы с датами. В Python есть стандартный модуль calendar, который значительно упрощает создание календарей и обработку данных, связанных с датами. В этой статье мы рассмотрим, как с помощью встроенного модуля calendar можно создавать и выводить календари. Начнем с простого примера — отображения календаря на текущий год. Для этого мы можем воспользоваться методом formatyear(), который позволяет сгенерировать календарь на заданный период: import calendar # Указываем год
current_year = 2025
# Создаём объект календаря
text_calendar = calendar.TextCalendar()
# Выводим календарь в текущем году
print(text_calendar.formatyear(current_year)) Вывод: Если необходимо показать календарь только для одного месяца, то можно воспользоваться методом formatmonth(). Синтаксис метода formatmonth(): formatmonth(year, month, width=0, lines=0) Где: Отображение календаря на месяц используя метод formatmonth(): import calendar # Год
year = 20
Оглавление

Введение

Календарь — это полезный инструмент для организации времени и работы с датами. В Python есть стандартный модуль calendar, который значительно упрощает создание календарей и обработку данных, связанных с датами. В этой статье мы рассмотрим, как с помощью встроенного модуля calendar можно создавать и выводить календари.

Пример вывода календаря

Начнем с простого примера — отображения календаря на текущий год. Для этого мы можем воспользоваться методом formatyear(), который позволяет сгенерировать календарь на заданный период:

import calendar

# Указываем год
current_year = 2025
# Создаём объект календаря
text_calendar = calendar.TextCalendar()
# Выводим календарь в текущем году
print(text_calendar.formatyear(current_year))

Вывод:

     Вывод календаря на Python Admin
Вывод календаря на Python Admin

Отображение календаря на месяц

Если необходимо показать календарь только для одного месяца, то можно воспользоваться методом formatmonth().

Синтаксис метода formatmonth():

formatmonth(year, month, width=0, lines=0)

Где:

  • year — год;
  • month — месяц;
  • width — ширина центральных столбцов даты, необязательный параметр;
  • lines — определяет количество строк, которые будет использовать каждая неделя, необязательный параметр.

Отображение календаря на месяц используя метод formatmonth():

import calendar

# Год
year = 2025
# Месяц
month = 1

# Создаём объект календаря
text_calendar = calendar.TextCalendar(calendar.SUNDAY)
# Выводим календарь
print(text_calendar.formatmonth(year, month))

Вывод:

     Вывод календаря на месяц Python Admin
Вывод календаря на месяц Python Admin

Также для отображения календаря на определённый месяц можно воспользоваться методом prmonth():

Синтаксис метода prmonth():

prmonth(year, month, w=0, l=0)

Где:

  • year — год;
  • month — месяц;
  • w — ширина центральных столбцов даты, необязательный параметр;
  • l — определяет количество строк, которые будет использовать каждая неделя, необязательный параметр.

Отображение календаря на месяц используя метод prmonth():

import calendar

# Год
year = 2025
# Месяц
month = 1

# Создаём объект календаря
text_calendar = calendar.TextCalendar(calendar.SUNDAY)
# Выводим календарь
text_calendar.prmonth(year, month)

Вывод:

     Вывод календаря на месяц Python Admin
Вывод календаря на месяц Python Admin

Визуализация календаря в HTML

Если необходимо интегрировать календарь в веб-приложение, то это можно сделать с помощью класса HTMLCalendar:

import calendar

# Создаём объект html-календаря
html_calendar = calendar.HTMLCalendar()
# Выводим html-календарь
print(html_calendar.formatmonth(2025, 1))

# Вывод:
#

# # # # # # # # January 2025 Mon Tue Wed Thu Fri Sat Sun 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

Таким образом мы получили HTML-таблицу с календарём для января 2025 года. HTML-формат удобно использовать, если вы работаете с веб-фреймворками, такими как Flask или Django.

Создание графического календаря

Ещё, мы можем создать графический интерфейс календаря с использованием библиотеки tkinter.

Первым делом импортируем модуль calendar и всё необходимое из библиотеки tkinter:

import calendar
from tkinter import Tk, Label

Далее создадим окно приложения:

import calendar
from tkinter import Tk, Label

# Создание окна приложения
root = Tk()
root.title("Календарь на 2025 год")

root.mainloop()

Обратимся к методу formatmonth() для получения текстового календаря:

import calendar
from tkinter import Tk, Label

root = Tk()
root.title("Календарь на 2025 год")

# Получение текстового календаря
cal = calendar.TextCalendar().formatyear(2025)

root.mainloop()

Отобразим полученные данные при помощи виджета Label:

import calendar
from tkinter import Tk, Label

root = Tk()
root.title("Календарь на 2025 год")

cal = calendar.TextCalendar().formatyear(2025)

# Отображение календаря в окне
label = Label(root, text=cal, font=("Courier", 10), justify="left")
label.pack()

root.mainloop()

По итогу мы получим вот такой простенький календарь:

     Календарь с графическим интерфейсом на Python Admin
Календарь с графическим интерфейсом на Python Admin

Заключение

В ходе статьи мы с Вами научились выводить календари на Python при помощи модуля calendar. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Мой Telegram канал

Мой YouTube канал

Мой курс по Python (50 видоуроков + дополнительные уроки)

Курс по созданию телеграм-ботов на Python с фреймворком Aiogram

Курс по созданию GUI на Python