39. Магические даты.

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

Условие:

Магическими называются даты, в которых произведение дня и месяца составляет последние две цифры года. Например, 10 июня 1960 года – магическая дата, поскольку 10 * 6 = 60.
Напишите функцию, определяющую, является ли введенная дата магической.

Код:

import datetime

def my_magic_date(result, day, month):
    mod = int(str(result)[2:4])
    if (day * month) == mod:
        return True


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

result_2 = my_magic_date(result, day, month)

if result_2:
    print("%99s" % f"Дата {result} магическая.")    
else:
    print("%99s" % f"Дата {result} не магическая.")