Hallo und Guten Tag,
vielen Dank, dass ich mit diesem Forum schon so viele Probleme lösen konnte.
Jetzt habe ich mich aber hier neu im Forum angemeldet, weil ich für mein jetziges Problem keine Lösung gefunden habe.
Ich möchte in einem ICal-Kalender den vordefinierten Ganztagesstempel durch eine Zeitspanne ersetzen.
Jetzt steht im Kalender:
DTSTART;VALUE=DATE:20220104
DTEND;VALUE=DATE:20220105
Dieser Ganztages-Stempel soll ersetzt werden durch die Zeitspanne von 7.00 bis 19.00 Uhr:
DTSTART:20220105T070000
DTEND:20220105T190000
Ich habe hier zwei Probleme:
1. Bei dem Ganztagesstempel müsste das erste Datum, welches eine Variable ist, bei DTSTART um einen Tag aufaddiert werden, so dass dort auch 20220105 steht.
2. Anschließend müsste an die Datumsvariable der Zeitstempel angehängt werden.
Also laienhaft ausgedrückt für die erste Befehlszeile:
Zuerst
Suche: DTSTART;VALUE=DATE:XXXXXXXX
Ersetze: DTSTART;VALUE=DATE:XXXXXXXX + 1 Tag
Danach
Suche: DTSTART;VALUE=DATE:XXXXXXXX
Ersetze: DTSTART:XXXXXXXXT070000
Vielen Dank für die Hilfe
Suchen Ersetzen mit Variablen
Moderator: Moderatoren
Re: Suchen Ersetzen mit Variablen
Hallo
Aus writer heraus mit nur den Bordmitteln per Suchen & Ersetzen wird das ne sehr frickelige bis unmögliche Angelegenheit (du musst ja theoretisch auch Monats- und Jahreswechsel berücksichtigen für das Startdatum!!)
Hier ist ne einfache Umsetzung per python
Aus writer heraus mit nur den Bordmitteln per Suchen & Ersetzen wird das ne sehr frickelige bis unmögliche Angelegenheit (du musst ja theoretisch auch Monats- und Jahreswechsel berücksichtigen für das Startdatum!!)
Hier ist ne einfache Umsetzung per python
Code: Alles auswählen
from datetime import datetime as dt, timedelta
SOFFSET = timedelta(days=1,hours=7)
EOFFSET = timedelta(hours=19)
with open("old.ical") as oldfile, open("new.ical", "w") as newfile:
for line in oldfile:
line = line.strip()
if line.startswith("DTSTART;VALUE=DATE:"):
line = f"DTSTART:{dt.strptime(line[-8:],'%Y%m%d') + SOFFSET :%Y%m%dT%H%M%S}"
if line.startswith("DTEND;VALUE=DATE:"):
line = f"DTEND:{dt.strptime(line[-8:],'%Y%m%d') + EOFFSET :%Y%m%dT%H%M%S}"
newfile.write(f'{line}\n')
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)