В неделе 8 дней:
Понедельник, Вторник, Среда, Четверг, Пятница, Суббота, Воскресенье, Осьма.
Сегодня – Среда.
Какой день недели будет 29 февраля 2024 года?
python
def is_leap_year(year):
if year % 400 == 0:
return True
if year % 100 == 0:
return False
if year % 4 == 0:
return True
return False
def get_day_of_week(year, month, day):
days_of_week = ["Понедельник", "Вторник", "Среда", "Четверг",
"Пятница", "Суббота", "Воскресенье", "Осьма"]
month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
total_days = 0
for y in range(1900, year):
if is_leap_year(y):
total_days += 366
else:
total_days += 365
for m in range(1, month):
if m == 2 and is_leap_year(year):
total_days += 29
else:
total_days += month_days[m - 1]
total_days += day - 1
return days_of_week[total_days % 8]
year = 2024
month = 2
day = 29
day_of_week = get_day_of_week(year, month, day)
print(day_of_week)
Давайте разберемся с этим кодом.
Функция `is_leap_year` принимает год в качестве аргумента и определяет, является ли он високосным. Она начинается с проверки условия, что если год делится на 400 без остатка, он високосный, и возвращает True. Затем проверяется другое условие, если год делится на 100 без остатка, он не високосный, и функция возвращает False. И, наконец, если год делится на 4 без остатка, он високосный и функция возвращает True. Во всех других случаях функция возвращает False.
Функция `get_day_of_week` принимает год, месяц и день в качестве аргументов и возвращает день недели. Внутри функции определена переменная `days_of_week`, которая содержит список всех дней недели. Затем определен список `month_days`, который содержит количество дней в каждом месяце.
После этого идет цикл `for`, который проходит через все годы с 1900 до заданного года. Если год високосный, то к `total_days` добавляется 366, иначе добавляется 365.
Затем идет второй цикл `for`, который проходит через все месяцы до заданного месяца. Если месяц равен 2 и год високосный, то к `total_days` добавляется 29, в противном случае добавляется количество дней из списка `month_days`.
В конце мы добавляем число дней, указанное в аргументе `day`, и вычитаем 1 (так как мы начинаем считать дни с 0). Затем мы берем остаток от деления `total_days` на 8 и возвращаем соответствующий день недели из списка `days_of_week`.
В конце программы мы вызываем функцию `get_day_of_week`, передавая ей год, месяц и день, и сохраняем результат в переменной `day_of_week`. Затем мы выводим результат на экран с помощью функции `print`.
При запуске этой программы, она выводит "Пятница", что означает, что 29 февраля 2024 года будет в пятницу.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет