37. Дни в месяце.

(открыть в новой вкладке)

Условие:

Напишите функцию для определения количества дней в конкретном месяце. Ваша функция должна принимать два параметра: номер месяца в виде целого числа в диапазоне от 1 до 12 и год, состоящий из четырех цифр. Убедитесь, что функция корректно обрабатывает февраль високосного года.
В основной программе запросите у пользователя номер месяца и год и отобразите на экране количество дней в указанном месяце. В помощь задача про високосный год, которая находится в простейших программах без циклов и ветвлений.

Код:

def my_days_in_february(year):
    result = 29 if (year % 4 == 0 and year % 100 != 0) or (year % 100 == 0 and year % 400 == 0) else 28
    return result    


def my_days_in_month(year, month):
    days_in_month = { 1: 31, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31 }
    if month in days_in_month:
        result = days_in_month[month]
    else:
        result = my_days_in_february(year)
    return result


while True:
    year = input("%100s" % "Введите год (1, 2 ... 2023): ")
    month = input("%100s" % "Введите месяц (1, 2 ... 12): ")
    print()
    try:
        year = int(year)
        month = int(month)
        if year < 0 or month < 0 or month > 12:
            print(("%99s" % "Вы ввели отрицательные значения или месяц, который больше 12."))
            continue
        break
    except:
        print("%99s" % "Вы допустили ошибку при вводе.")

result = my_days_in_month(year, month)

print("%99s" % "Количество дней в месяце:", result)