Как распечатать годовой календарь на Python: несколько методов

Я расскажу вам несколько способов распечатать годовой календарь на Python. Вот три популярных подхода:

Способ 1. Использование модуля календаря

import calendar
def print_year_calendar(year):
    for month in range(1, 13):
        print(calendar.month_name[month])
        print(calendar.monthcalendar(year, month))
        print()
print_year_calendar(2023)

Метод 2. Использование модуля datetime

import datetime
def print_year_calendar(year):
    for month in range(1, 13):
        date = datetime.date(year, month, 1)
        print(date.strftime("%B"))
        while date.month == month:
            print(date.strftime("%d"), end=" ")
            date += datetime.timedelta(days=1)
            if date.month != month:
                print()
                break
        print()
print_year_calendar(2023)

Способ 3: использование модуля dateutil (необходимо установить)

import dateutil.relativedelta as rd
import datetime
def print_year_calendar(year):
    start_date = datetime.date(year, 1, 1)
    end_date = start_date + rd.relativedelta(years=1)
    current_date = start_date
    while current_date < end_date:
        print(current_date.strftime("%B"))
        while current_date.month == start_date.month:
            print(current_date.strftime("%d"), end=" ")
            current_date += rd.relativedelta(days=1)
            if current_date.month != start_date.month:
                print()
                break
        print()
        start_date = current_date
print_year_calendar(2023)

Эти методы распечатают календарь на указанный год, используя разные подходы. Вы можете выбрать тот, который лучше всего соответствует вашим требованиям.