Реализуйте расчет дня недели для дня рождения.
Пользователь вводит месяц и день, а получает файл, содержащий дни недели, на которые приходится его день рождения
в ближайшие 20 лет
Ответы
import datetime
import locale
# Получаем дату рождения от пользователя.
month = int(input("Введите месяц дня рождения (1-12): "))
day = int(input("Введите день дня рождения (1-31): "))
# Устанавливаем русскую локализацию для вывода дня недели.
locale.setlocale(locale.LC_ALL, "ru_RU.UTF-8")
# Открываем файл birthday.txt для записи.
outfile = open("birthday.txt", "w")
# Выводим заголовок в файл.
print("Отчет о днях рождения", file=outfile)
print("---------------", file=outfile)
# Выводим дни рождения в файл.
for year in range(datetime.date.today().year, datetime.date.today().year + 20):
date = datetime.date(year, month, day)
# Форматируем дату, указывая опцию %A, чтобы получить день недели.
formatted_date = date.strftime("%A").capitalize()
print(formatted_date, file=outfile)
# Закрываем файл.
outfile.close()
print("Отчет о днях рождения напечатан в birthday.txt")