Mini-Projekt: Terminplaner
Anforderungen
- Termin: Titel + Datum (Text geparst)
- mind. 3 Termine (Liste/Dict/JSON)
- Tage bis Termin berechnen
- sortiert anzeigen
- pathlib oder JSON optional
Beispiellösung
Lösung anzeigen
from datetime import date, datetime
from pathlib import Path
import json
PFAD = Path("termine.json")
def lade():
if not PFAD.exists():
return []
return json.loads(PFAD.read_text(encoding="utf-8"))
def speichere(daten):
PFAD.write_text(json.dumps(daten, indent=2, ensure_ascii=False), encoding="utf-8")
termine = lade()
print("=== Terminplaner ===")
print("1) Neu 2) Liste 3) Ende")
wahl = input("> ").strip()
if wahl == "1":
titel = input("Titel: ").strip()
raw = input("Datum YYYY-MM-DD: ").strip()
d = datetime.strptime(raw, "%Y-%m-%d").date()
termine.append({"titel": titel, "datum": d.isoformat()})
speichere(termine)
print("Gespeichert.")
elif wahl == "2":
heute = date.today()
sortiert = sorted(termine, key=lambda t: t["datum"])
for t in sortiert:
d = date.fromisoformat(t["datum"])
tage = (d - heute).days
print(f"{t['titel']} am {d.strftime('%d.%m.%Y')} ({tage} Tage)")
Kapitel 38 geschafft!
Als Nächstes: Web-APIs.