Python. Программа спрашивает у пользователя день, месяц и год рождения, а затем выводит возраст в годах, месяцах и днях. Без использования if.
Ответы на вопрос
Можно сделать без оператора if, используя сравнения как значения True и False. В Python они работают как \(1\) и \(0\).
Пример:
from datetime import date
import calendar
d = int(input("День рождения: "))
m = int(input("Месяц рождения: "))
y = int(input("Год рождения: "))
today = date.today()
years = today.year - y - ((today.month, today.day) < (m, d))
last_year = today.year - ((today.month, today.day) < (m, d))
last_day = min(d, calendar.monthrange(last_year, m)[1])
last_birthday = date(last_year, m, last_day)
months = today.month - last_birthday.month - (today.day < last_birthday.day)
months = months % 12
month_num = last_birthday.month + months
ref_year = last_birthday.year + (month_num - 1) // 12
ref_month = (month_num - 1) % 12 + 1
ref_day = min(last_birthday.day, calendar.monthrange(ref_year, ref_month)[1])
ref_date = date(ref_year, ref_month, ref_day)
days = (today - ref_date).days
print(years, "лет", months, "месяцев", days, "дней")
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

