Вычисление даты в python

Есть программа, которая возвращает мне срок действия сертификата

Expiration_date = ['14.12.2022', '29.12.2022', '23.02.2023', '15.02.2023', '10.09.2023']

retail_vibor = input('''Введите торговую точку в формате: 1 это - Офис Малахова 1а, 2 - Новоалтайск, 
 3 - Благовещенка, 4 - Славгород, 5 - Камень - на - Оби, 6 - Волгоград, 7 - Владивосток, Нажмите Enter:''')

retail = {'1': "Офис Малахова 1а: Дата истечения сертификата и RSA ключа " + Expiration_date[1],
         '2': "Новоалтайск: Дата истечения сертификата и RSA ключа " + Expiration_date[3],
         '3': "Благовещенка: Дата истечения сертификата и RSA ключа " + Expiration_date[4],
         '4': "Славгород: Дата истечения сертификата и RSA ключа " + Expiration_date[1],
         '5': "Камень - на - Оби: Дата истечения сертификата и RSA ключа " + Expiration_date[0],
         '6': "Волгоград: Дата истечения сертификата и RSA ключа " + Expiration_date[1],
         '7': "Владивосток: Дата истечения сертификата и RSA ключа " + Expiration_date[3],}

def print_retail(retail_name):
   try:
       if retail_name == '':
           exit()
       print(retail[retail_name])
   except KeyError:
      print('Ошибка! Проверьте правильность введеных даннных')


def running():
   print_retail(input('Введите Торговую точку или нажмите ENTER, чтобы   выйти:').strip())

while True:
   running() 

Все работает, но хотелось бы видеть дополнительно сколько дней осталось до конца. Написал код отдельно, только не могу понять теперь как их синхронизировать

import datetime
now = datetime.datetime.today()
ED = datetime.datetime(2022, 12, 14)
d = ED-now
mm, ss = divmod(d.seconds, 60)
hh, mm = divmod(mm, 60)
print('До окончания срока действия сертификата: {} дн. {} ч. {} мин {} сек.'.format(d.days, hh, mm, ss))

Ответы (1 шт):

Автор решения: Виктор

Пример реализации:

from datetime import datetime

prompt = '''
Введите номер торговой точки: 
1 - Офис Малахова 1а 
2 - Новоалтайск 
3 - Благовещенка 
4 - Славгород 
5 - Камень - на - Оби 
6 - Волгоград 
7 - Владивосток 

0 - Выход

Ваш выбор: '''


retail = {
    '1': ["Офис Малахова 1а: Дата истечения сертификата и RSA ключа", '29.12.2022'],
    '2': ["Новоалтайск: Дата истечения сертификата и RSA ключа", '15.02.2023'],
    '3': ["Благовещенка: Дата истечения сертификата и RSA ключа", '10.09.2023'],
    '4': ["Славгород: Дата истечения сертификата и RSA ключа", '29.12.2022'],
    '5': ["Камень - на - Оби: Дата истечения сертификата и RSA ключа", '14.12.2022'],
    '6': ["Волгоград: Дата истечения сертификата и RSA ключа", '29.12.2022'],
    '7': ["Владивосток: Дата истечения сертификата и RSA ключа", '15.02.2023']
}
                                                                      
def print_retail(retail_name):
   try:
       if retail_name in ('','0'):
           exit()

       print(retail[retail_name][0],retail[retail_name][1])

       now = datetime.today()
       ED = datetime.strptime( retail[retail_name][1], "%d.%m.%Y")
       d = ED-now
       mm, ss = divmod(d.seconds, 60)
       hh, mm = divmod(mm, 60)
       print(f'До окончания срока действия сертификата: {d.days} дн. {hh} ч. {mm} мин {ss} сек.')
   except KeyError:
      print('Ошибка! Проверьте правильность введеных даннных')


def running():
   print_retail( input(prompt).strip() )

while True:
   running() 
→ Ссылка