Ich arbeite an einem Planungssystem in Python, das die folgenden Regeln einhältPython

Python-Programme
Anonymous
 Ich arbeite an einem Planungssystem in Python, das die folgenden Regeln einhält

Post by Anonymous »

Ich arbeite an einem Planungssystem in Python, das sich an die folgenden Regeln hält:
Jeder Tag hat ein festes Zeitfenster: 9:00 bis 13:00 Uhr (im lokale Zeitzone des Benutzers).
Wenn die aktuelle Zeit außerhalb dieses Fensters liegt:
Vor 9:00 Uhr: Auf 9:00 Uhr + Intervall einstellen.
Nach 13:00 Uhr: Planen für den nächsten Tag 9:00 Uhr + Intervall.
Das Planungssystem sollte nur für drei aufeinanderfolgende Tage funktionieren.
Wenn die Planung das Fenster des dritten Tages (13:00 Uhr) überschreitet, sollte sie bei 1 angehalten oder begrenzt werden: 00 Uhr am dritten Tag.
Ich muss die nächste geplante Zeit in UTC berechnen, aber alle Vergleiche müssen in der lokalen Zeitzone des Benutzers erfolgen. Ich habe eine Funktion implementiert, aber die Logik für den Übergang zum Fenster des nächsten Tages und das Stoppen am dritten Tag funktioniert nicht richtig.
Hier ist der Kern meiner aktuellen Implementierung:

Code: Select all

def get_next_scheduled_time(country, interval_seconds=20):
tz_name = time_zone_mapping.get(country, "UTC")
timezone = pytz.timezone(tz_name)

now_local = datetime.now(pytz.utc).astimezone(timezone)

base_time = timezone.localize(datetime(now_local.year, now_local.month, now_local.day, 9, 0, 0))
end_time = timezone.localize(datetime(now_local.year, now_local.month, now_local.day, 13, 0, 0))

staggered_time = now_local + timedelta(seconds=interval_seconds)

if staggered_time < base_time:
staggered_time = base_time + timedelta(seconds=interval_seconds)
elif base_time  max_scheduled_time:
staggered_time = timezone.localize(max_scheduled_time).astimezone(timezone)

return staggered_time.astimezone(pytz.utc).strftime("%Y-%m-%dT%H:%M:%S+00:00")
Der Übergang zum nächsten Tag stimmt nicht immer mit dem Beginn des Zeitfensters (9:00 Uhr) überein.
Nach dem Übergang überspringt er manchmal den definierten Tag oder überschneidet sich mit diesem Zeitfenster.
Ich bin mir nicht sicher, ob ich timedelta(days=...) oder timedelta(hours=...) für Tagesübergänge verwenden soll, um eine präzise Kontrolle zu gewährleisten.
Gewünschte Ausgabe:
Wenn der aktuelle Wenn die Zeit an Tag 1 außerhalb des Zeitfensters liegt, planen Sie sie für 9:00 Uhr von Tag 2 ein.
Wenn das Zeitfenster von Tag 3 überschritten wird, begrenzen Sie die Planung auf 13:00 Uhr an Tag 3.
Alle Planungsberechnungen sollten Beachten Sie die lokale Zeitzone, aber die Ausgabe muss in UTC erfolgen.
Wie kann ich diese Logik korrigieren, um ordnungsgemäße Übergänge von Tag zu Tag und die strikte Einhaltung von Zeitfenstern sicherzustellen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post