결과 형식 지정 및 반환
이 단계에서는 과거 및 미래 날짜의 형식을 지정하고 문자열 목록으로 반환하는 방법을 배우게 됩니다.
time_travel_destination(time: str, days: int) 함수 내에서 과거 및 미래 날짜의 형식을 지정하고 목록으로 반환하기 위해 다음 코드를 추가합니다.
return [past_time.strftime("%d-%m-%Y"), future_time.strftime("%d-%m-%Y")]
strftime() 메서드는 past_time 및 future_time datetime.date 객체를 "dd-mm-yyyy" 형식의 문자열로 형식화하는 데 사용됩니다.
- 마지막으로, 함수 실행 중에 발생할 수 있는
ValueError 또는 OverflowError 예외를 catch 하기 위해 예외 처리 블록을 추가합니다.
except (ValueError, OverflowError):
return []
이러한 예외가 발생하면 함수는 빈 목록을 반환합니다.
최종 time_travel_destination(time: str, days: int) 함수는 다음과 같아야 합니다.
import datetime
def time_travel_destination(time: str, days: int):
try:
## Extract year, month, and day from the time string
year, month, day = map(int, time.split("-"))
## Check if the date is valid
datetime.date(year, month, day)
try:
## Subtract the specified number of days from the given date
past_time = datetime.date(year, month, day) - datetime.timedelta(days=days)
except OverflowError:
## If an OverflowError occurs, set past_time to the minimum representable date
past_time = datetime.date(1, 1, 1)
## Add the specified number of days to the given date
future_time = datetime.date(year, month, day) + datetime.timedelta(days=days)
## Return the past and future dates in the format 'dd-mm-yyyy'
return [past_time.strftime("%d-%m-%Y"), future_time.strftime("%d-%m-%Y")]
except (ValueError, OverflowError):
## If a ValueError or OverflowError occurs, return an empty list
return []
이제 time_travel_destination(time: str, days: int) 함수의 구현을 완료했습니다. time_travel_destination.py 파일의 main 블록에서 제공된 예제를 실행하여 함수를 테스트할 수 있습니다. 몇 가지 예제가 아래에 제공됩니다.
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']