In diesem Schritt lernst du, wie du die Vergangenheits- und Zukunftsdatum formatierst und als Liste von Strings zurückgibst.
- Füge innerhalb der Funktion
time_travel_destination(time: str, days: int)
folgenden Code hinzu, um die Vergangenheits- und Zukunftsdatum zu formatieren und als Liste zurückzugeben:
return [past_time.strftime("%d-%m-%Y"), future_time.strftime("%d-%m-%Y")]
Die Methode strftime()
wird verwendet, um die past_time
und future_time
datetime.date
-Objekte in Strings im Format "tt.mm.jjjj" umzuwandeln.
- Füge abschließend einen Ausnahmebehandlungsblock hinzu, um alle
ValueError
- oder OverflowError
-Ausnahmen zu fangen, die während der Funktionsausführung auftreten können:
except (ValueError, OverflowError):
return []
Wenn eine dieser Ausnahmen ausgelöst wird, wird die Funktion eine leere Liste zurückgeben.
Deine endgültige Funktion time_travel_destination(time: str, days: int)
sollte wie folgt aussehen:
import datetime
def time_travel_destination(time: str, days: int):
try:
## Extrahiere Jahr, Monat und Tag aus dem Zeitstring
year, month, day = map(int, time.split("-"))
## Überprüfe, ob das Datum gültig ist
datetime.date(year, month, day)
try:
## Subtrahiere die angegebene Anzahl der Tage vom angegebenen Datum
past_time = datetime.date(year, month, day) - datetime.timedelta(days=days)
except OverflowError:
## Wenn ein OverflowError auftritt, setze past_time auf das minimal darstellbare Datum
past_time = datetime.date(1, 1, 1)
## Addiere die angegebene Anzahl der Tage zum angegebenen Datum
future_time = datetime.date(year, month, day) + datetime.timedelta(days=days)
## Gib die Vergangenheits- und Zukunftsdatum im Format 'tt.mm.jjjj' zurück
return [past_time.strftime("%d-%m-%Y"), future_time.strftime("%d-%m-%Y")]
except (ValueError, OverflowError):
## Wenn ein ValueError oder OverflowError auftritt, gib eine leere Liste zurück
return []
Du hast jetzt die Implementierung der Funktion time_travel_destination(time: str, days: int)
abgeschlossen. Du kannst die Funktion testen, indem du die bereitgestellten Beispiele im Hauptblock der Datei time_travel_destination.py
ausführst. Einige Beispiele sind unten angegeben:
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']