Автоматический поиск дат в заданном году и месяце с использованием Python

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

Для решения этой задачи мы будем использовать модуль datetime в Python. Наш подход заключается в переборе всех дат в указанном месяце и проверке, является ли каждая дата вторником или четвергом. Для этого мы будем использовать методы объектов datetime.date, такие как weekday(), который возвращает номер дня недели (понедельник — 0, вторник — 1, и так далее).


import datetime

def get_tuesday_and_thursday_dates(year, month):
    dates = []
    date = datetime.date(year, month, 1)  # Создаем объект даты для первого дня указанного года и месяца

    while date.month == month:
        if date.weekday() == 1 or date.weekday() == 3:  # Проверяем, является ли день вторником (1) или четвергом (3)
            dates.append(date)  # Добавляем найденную дату в список

        date += datetime.timedelta(days=1)  # Переходим к следующей дате, увеличивая на 1 день

    today = datetime.date.today()  # Получаем текущую дату
    if today.month == month and (today.weekday() == 1 or today.weekday() == 3):  # Проверяем текущий месяц и является ли текущий день вторником или четвергом
        dates.append(today)  # Добавляем текущую дату в список, если она соответствует условию

    return dates

year = int(input("Введите год: "))  # Ввод года с клавиатуры
month = int(input("Введите месяц (числовое значение): "))  # Ввод месяца с клавиатуры
dates = get_tuesday_and_thursday_dates(year, month)  # Вызов функции для получения списка дат

# Вывод найденных дат
for date in dates:
    print(date.strftime("%Y-%m-%d"))  # Выводим каждую дату в формате "год-месяц-день"

Мы создаем функцию get_tuesday_and_thursday_dates(year, month), которая принимает год и месяц в качестве аргументов. Внутри функции мы инициализируем список дат и устанавливаем начальную дату на первый день указанного года и месяца.

Затем мы перебираем все даты в месяце, проверяем, является ли каждая дата вторником (1) или четвергом (3), и добавляем найденные даты в список.

После этого мы проверяем текущую дату и добавляем ее в список, если она соответствует условию (текущий месяц и день — вторник или четверг).

Заключение:

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

Источник