Zum Hauptinhalt springen

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.