Вычисление даты в 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()