Форматирование и возврат результатов
В этом шаге вы научитесь форматировать даты в прошлом и будущем и возвращать их в виде списка строк.
- Внутри функции
time_travel_destination(time: str, days: int)
добавьте следующий код для форматирования дат в прошлом и будущем и возврата их в виде списка:
return [past_time.strftime("%d-%m-%Y"), future_time.strftime("%d-%m-%Y")]
Метод strftime()
используется для форматирования объектов datetime.date
past_time
и future_time
в строки в формате "dd-mm-yyyy".
- Наконец, добавьте блок обработки исключений, чтобы перехватить любые исключения
ValueError
или OverflowError
, которые могут возникнуть во время выполнения функции:
except (ValueError, OverflowError):
return []
Если какое-либо из этих исключений возникает, функция вернет пустой список.
Ваша итоговая функция time_travel_destination(time: str, days: int)
должна выглядеть так:
import datetime
def time_travel_destination(time: str, days: int):
try:
## Извлекаем год, месяц и день из строки времени
year, month, day = map(int, time.split("-"))
## Проверяем, является ли дата допустимой
datetime.date(year, month, day)
try:
## Вычитаем указанное количество дней из заданной даты
past_time = datetime.date(year, month, day) - datetime.timedelta(days=days)
except OverflowError:
## Если возникает OverflowError, устанавливаем past_time равной минимальной представимой дате
past_time = datetime.date(1, 1, 1)
## Добавляем указанное количество дней к заданной дате
future_time = datetime.date(year, month, day) + datetime.timedelta(days=days)
## Возвращаем даты в прошлом и будущем в формате 'dd-mm-yyyy'
return [past_time.strftime("%d-%m-%Y"), future_time.strftime("%d-%m-%Y")]
except (ValueError, OverflowError):
## Если возникает ValueError или OverflowError, возвращаем пустой список
return []
Теперь вы завершили реализацию функции time_travel_destination(time: str, days: int)
. Вы можете протестировать функцию, запустив предоставленные примеры в основном блоке файла time_travel_destination.py
. Некоторые примеры приведены ниже:
print(time_travel_destination('2238-2-11', 30))
print(time_travel_destination('2238-2-11', 0))
print(time_travel_destination('2238-2-11', 100))
['12-01-2238', '13-03-2238']
['11-02-2238', '11-02-2238']
['03-11-2237', '22-05-2238']