Реализуй расчет дня недели для дня рождения. Python Пользователь вводит месяц и день, а получает
файл, содержащий дни недели, на которые приходится день рождения на ближайшие 20 лет. После открытия файла пользователь должен увидеть результат в подобном формате: Date: 12.12 12.12.2021 - Sunday 12.12.2022 - Monday 12.12.2023 - Tuesday На pythonОтветы на вопрос
import datetime
f = open('test', 'w')
x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
date = input()
xd = []
if len(date) > 4:
for i in range(2021, 2042):
a = datetime.date(i, int(date[:2]), int(date[3:])).weekday()
xd.append(date + '.' + str(i) + ' - ' + str(x[a]))
else:
flag = date.index('.')
for i in range(2021, 2042):
a = datetime.date(i, int(date[:flag]), int(date[flag+1:])).weekday()
xd.append(date + '.' + str(i) + ' - ' + str(x[a]))
f.write('Date: ' + str(date) + '\n')
for i in range(len(xd)):
f.write(xd[i]+'\n')
Для реализации данной задачи вам потребуется использовать модули datetime и calendar в Python. Вот пример кода, который выполняет это:
pythonimport datetime
import calendar
def calculate_weekday(birthday_month, birthday_day, num_years=20):
# Определение текущей даты
current_date = datetime.datetime.now()
# Открываем файл для записи результатов
with open("birthday_weekdays.txt", "w") as file:
for year in range(current_date.year, current_date.year + num_years):
birthday_date = datetime.datetime(year, birthday_month, birthday_day)
weekday = calendar.day_name[birthday_date.weekday()]
# Записываем результат в файл
file.write(f"Date: {birthday_day:02d}.{birthday_month:02d} {year} - {weekday}\n")
print("Результаты записаны в файл 'birthday_weekdays.txt'.")
if __name__ == "__main__":
# Получаем от пользователя месяц и день дня рождения
birthday_month = int(input("Введите месяц вашего дня рождения (число от 1 до 12): "))
birthday_day = int(input("Введите день вашего дня рождения (число от 1 до 31): "))
calculate_weekday(birthday_month, birthday_day)
Этот код запрашивает у пользователя месяц и день дня рождения, а затем вычисляет дни недели для ближайших 20 лет и записывает результаты в файл "birthday_weekdays.txt". Наконец, он выводит сообщение о завершении операции.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
