39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
# last_friday_datetime.py
|
||
|
||
from datetime import datetime, timedelta
|
||
import calendar
|
||
|
||
def get_last_friday(month_year: str) -> str:
|
||
"""
|
||
Функция возвращает дату последней пятницы указанного месяца.
|
||
|
||
Параметры:
|
||
month_year : str
|
||
Строка с месяцем и годом в формате "MM/YYYY"
|
||
|
||
Возвращает:
|
||
str
|
||
Дата последней пятницы в формате "DD.MM.YYYY"
|
||
"""
|
||
# Преобразуем вход в числа
|
||
month, year = map(int, month_year.split("/"))
|
||
|
||
# Определяем последний день месяца
|
||
last_day = calendar.monthrange(year, month)[1]
|
||
|
||
# Создаём объект datetime для последнего дня месяца
|
||
date = datetime(year, month, last_day)
|
||
|
||
# Вычисляем разницу до пятницы (weekday() → понедельник=0, пятница=4)
|
||
days_back = (date.weekday() - 4) % 7
|
||
last_friday = date - timedelta(days=days_back)
|
||
|
||
# Форматируем в строку
|
||
return last_friday.strftime("%d.%m.%Y")
|
||
|
||
|
||
# Пример использования
|
||
if __name__ == "__main__":
|
||
example_input = "05/2022"
|
||
print(get_last_friday(example_input)) # Вывод: 27.05.2022
|