Timer Abfrage

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
TorstenVoelker
User
Beiträge: 142
Registriert: Mittwoch 5. Februar 2025, 12:55

Ja okay , dann lag ich diesmal falsch .

Aber ich frage mich die ganze Zeit , wenn ich jetzt einen datetime in die Datenbank Speicher also , die Zeit und dann die Differenz mit timedelta ausrechne ist mein Problem wie kann ich es machen das wenn die Zeit zb 15:30 ist und die Endzeit 15:50 .

Das dann nach der abgelaufenen Zeit was geschehen soll . Weil mit >= geht es nicht das hatte ich versucht.

Habe mich den ganzen Tag damit beschäftigt und gelesen aber nichts hatte ich in der Art gefunden .
Sirius3
User
Beiträge: 18245
Registriert: Sonntag 21. Oktober 2012, 17:20

Natürlich geht >=:

Code: Alles auswählen

>>> import datetime
>>> end_time = datetime.datetime(2025,5,7,19,43)
>>> now = datetime.datetime.now()
>>> end_time - now
datetime.timedelta(seconds=1214, microseconds=811717)
>>> end_time - now >= datetime.timedelta(minutes=30)
False
Benutzeravatar
noisefloor
User
Beiträge: 4167
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

klar funktionieren die Vergleichsoperationen. Simples Beispiel:

Code: Alles auswählen

>>> from datetime import datetime, timedelta
>>> from time import sleep
>>> start = datetime.now()
>>> delta = timedelta(minutes=2)
>>> ende = start + delta
>>> ende
datetime.datetime(2025, 5, 7, 19, 42, 58, 392425)
>>> while ende > datetime.now():
...     print(datetime.now())
...     sleep(10)
... else:
...     print('Boom!')
...
2025-05-07 19:41:31.162618
2025-05-07 19:41:41.163352
2025-05-07 19:41:51.164558
2025-05-07 19:42:01.165362
2025-05-07 19:42:11.166550
2025-05-07 19:42:21.167772
2025-05-07 19:42:31.169028
2025-05-07 19:42:41.169920
2025-05-07 19:42:51.170772
Boom!
>>>
Gruß, noisefloor
Benutzeravatar
sparrow
User
Beiträge: 4522
Registriert: Freitag 17. April 2009, 10:28

"Meine GUI friert ein" in 5... 4...
TorstenVoelker
User
Beiträge: 142
Registriert: Mittwoch 5. Februar 2025, 12:55

David für das Beispiel .

Da muss ich mich erstmal richtig drin vertiefen mich dran halten .

Eine Frage , die Endtime die Du ja Manuel eingegeben hast , das wäre die time die ich in die Datenbank Speichen würde ?

Also in mein Fall end_time = Datetime.datetime(Self.time)

??
Benutzeravatar
noisefloor
User
Beiträge: 4167
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Wer ist David?

Der Rest der Frage macht nur semi-viel Sinn. Wir kennen deinen Code nicht, wir wissen nicht, was da genau vorhast, die Glaskugel ist kaputt -> keine Hilfe möglich. Solange du es nicht schaffst, Fragen ausführlich und im sinnvollen Kontext und idealerweise mit Code zu stellen, wir das alles nix. Dann läuft deine Zeit, in der du noch Interesse an Python hast, ab, bevor du auch nur im Ansatz eine Lösung hast.

Gruß, noisefloor
Benutzeravatar
noisefloor
User
Beiträge: 4167
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

sparrow hat geschrieben: Mittwoch 7. Mai 2025, 18:47 "Meine GUI friert ein" in 5... 4...
Yup, daran habe ich auch gedacht. Aber warum jetzt schon kompliziert machen, wenn schon einfache Sachen (zu) kompliziert sind. Außerdem war doch "offiziell" von einer GUI noch gar keine Rede...

Gruß, noisefloor
TorstenVoelker
User
Beiträge: 142
Registriert: Mittwoch 5. Februar 2025, 12:55

noisefloor hat geschrieben: Mittwoch 7. Mai 2025, 19:06 Wer ist David?

Der Rest der Frage macht nur semi-viel Sinn. Wir kennen deinen Code nicht, wir wissen nicht, was da genau vorhast, die Glaskugel ist kaputt -> keine Hilfe möglich. Solange du es nicht schaffst, Fragen ausführlich und im sinnvollen Kontext und idealerweise mit Code zu stellen, wir das alles nix. Dann läuft deine Zeit, in der du noch Interesse an Python hast, ab, bevor du auch nur im Ansatz eine Lösung hast.

Gruß, noisefloor
Sollte Danke heißen , sorry !
TorstenVoelker
User
Beiträge: 142
Registriert: Mittwoch 5. Februar 2025, 12:55

Ich habe ja schon am Anfang gesagt , ich möchte ein kleines Spiel machen für mich selber um nach und nach was ich lerne da einzubauen.

Habe ein Login , Nachrichten die man hin und her senden kann , jetzt bin ich dabei das man Aktionen machen kann , in diesen Fall kann man immer 30 min wandern gehen und bekommt 1 Punkt wenn die Zeit rum ist .

Viele sagen jetzt komisches Spiel , aber zum Testen und üben ist das für mich schon eine große Hürde .

Also habe alles geschafft selber zu programmieren und es läuft auch nur das mit der Aktion da hakt es noch .

Es soll so ablaufen

Der Spieler klickt auf wandern, dann soll eine Zeit die jetzt Zeit also in dem Fall die datetime.Now gesetzt werden dann wenn 30 min rum ist und der Spieler sich zb in 35 min einloggt um zu schauen wie weit er ist das dann ein Update passiert wo dann ein Punkt vergeben wird .

Anders und besser konnte ich es jetzt nicht erklären.
Sirius3
User
Beiträge: 18245
Registriert: Sonntag 21. Oktober 2012, 17:20

TorstenVoelker hat geschrieben: Mittwoch 7. Mai 2025, 19:39Also habe alles geschafft selber zu programmieren
Schlechte Einstellung. Man kann keine Sprache lernen, wenn man sich nur selbst vor dem Spiegel Sätze vorsagt. Man muß mit anderen kommunizieren. Bei Dir sollte "zuhören" an erster Stelle stehen.
TorstenVoelker
User
Beiträge: 142
Registriert: Mittwoch 5. Februar 2025, 12:55

Lieber Sirius ich will damit sagen das ich viel gelesen habe und auch viel gelernt habe in 3 Monaten . Zum Thema zuhören , das kann ich besser als selber nur reden und schlauer sein nur ich mag es nicht wenn man zb als Kommentar abgibt , logisch denken oder wenn welche meinen boah macht er sich das schwer . Sowas ignoriere ich .

Wenn ich Jahre lang Erfahrung habe mit Python dann ist alles immer leicht gesagt .

Ich bin gelernter Schweißer , wäre das gleiche einer will heute Wig schweißen lernen und hat fragen weil er was nicht hinbekommt und ich würde dann schreiben ,man was ist daran schwer ., dann würde er bestimmt nichts drauf antworten .
Benutzeravatar
Dennis89
User
Beiträge: 1512
Registriert: Freitag 11. Dezember 2020, 15:13

Keiner sagt „was ist daran schwer“. Wenn er aber mit einer runden Wolframnadel 1.4571 schweißen will, dann sagst du ihm auch er so die Nadel spitz schleifen, auch wenn die dabei entstandene Naht irgendwie hält. Und so ist das hier auch, man sagt dir wie du es besser/einfacher machst, damit du es lernen kannst.


Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
sparrow
User
Beiträge: 4522
Registriert: Freitag 17. April 2009, 10:28

@TorstenVoelker: Ergänzend zu Dennis89: Und die Frage ist natürlich auch, wie du damit umgehen würdest, wenn du das jemanden erklärst und der das nicht versteht, nicht umsetzt und das trotzdem anders macht. Oder dich ständig fragt, wie man beim Flux-Schweißen denn nun das Schutzgas zuführt.
Denn ich sehe das so, dass Kommentare hier von dir nach wie vor ignoriert werden.
TorstenVoelker
User
Beiträge: 142
Registriert: Mittwoch 5. Februar 2025, 12:55

Ich habe einige Sachen die mit hier erklärt worden sind umgesetzt und war auch dankbar aber ich habe auch gesagt das man nicht nur im Forum lesen sollte um zu lernen . Ich lese viel und probiere viel aus . Habe mir als letztes Decorators durchgekommen und soweit verstanden und habe viel damit versucht zu arbeiten um das einzuprägen.

Nur ab und zu wie jetzt beim Thema mein Projekt zu kommen , bin ich beim Thema datetime und hänge da fest was ich ja vorhin schon erklärt habe .

Aber danke diejenigen die mir heute 2 Beispiele gepostet haben , somit kann ich Morgen nach meiner Arbeit mal selber versuchen es umzusetzen und mal sehen wie blöd ich mich anstelle oder auch nicht . 😂
TorstenVoelker
User
Beiträge: 142
Registriert: Mittwoch 5. Februar 2025, 12:55

Hallo Ihr lieben, habe jetzt beschlossen alles hinzuschmeißen, weil das mit dem Date bekomme ich nicht hin und wenn man alles versucht und auch die Tipps annimmt aber das was man machen will nicht funzt , macht es keinen Spaß mehr .

Wollte einfach nur von meiner Datenbank die Spalte time die ein Datetime ist die Zeit nehmen und das mit der jetzt Zeit vergleichen und dann sollte "einfach" die Ausgabe sein du bist noch 30 min unterwegs ansonsten mach das .

Habe das mir zu Herzen genommen was Ihr mir als Vorlage gegeben habt was ja normalerweise große Hilfe sein sollte aber ich scheitere ab allen Ecken .

Habe viele Sachen von Euch angenommen und meist hat alles funktioniert und es weiter verfeinert, aber hier mit dem Date etc. bin ich überfordert.

Bin glaub zum dumm oder doof ich weiß nicht .
Benutzeravatar
noisefloor
User
Beiträge: 4167
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

dein primärer Fehler ist, dass du dich konstant weigerst, den _kompletten_ Code zu zeigen. Nur Schnipsel und den Text in Volltextprosa ist halt ziemlich nutzlos.

Gruß, noisefloor
TorstenVoelker
User
Beiträge: 142
Registriert: Mittwoch 5. Februar 2025, 12:55

Ich habe alles gelöscht.

Weil wenn man viel darum prutscht was ich ja gemacht habe mit dem Date dann ging das nicht , dann das nicht.
Somit Delete und fertig.


Wollte nur wissen wie ich die Zeit von meiner Datenbank also den Datetime in Python auslesen kann und dann mit der jetzt Zeit Abfragen kann .
Weil das was ich Rot mackiert habe ist ja eine Feste Endzeit und ich wollte ja wissen wie ich da den Datetime reinbekomme von der Datenbank.


Das ist Wahrscheinlich für mich noch zu Hoch .

Code: Alles auswählen

 end_time = datetime.datetime(2025, 5, 8, 18, 43)] [b]<<----------------------------------------------------- [/b]
                 now = datetime.datetime.now()
                 end_time - now
                 datetime.timedelta(seconds=1214, microseconds=811717)
                 end_time - now >= datetime.timedelta(minutes=30)


Benutzeravatar
Dennis89
User
Beiträge: 1512
Registriert: Freitag 11. Dezember 2020, 15:13

Steht das bei dir so in der *.py-Datei oder im interaktiven Interpreter? Wenn in der Datei, dann musst du was mit den Rückgaben machen, damit etwas passiert:

Code: Alles auswählen

import datetime

end_time = datetime.datetime(2025, 5, 8, 18, 43)
now = datetime.datetime.now()
print(end_time - now >= datetime.timedelta(minutes=30))


Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
__blackjack__
User
Beiträge: 13969
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Das ist aus diesem Beitrag von Sirius3 kopiert mit Anpassung der Werte in der ersten Zeile und entfernen der Prompts der Python-Shell: viewtopic.php?p=433998#p433998

Eventuell fehlt da das Verständnis vom Unterschied zwischen der Python-Shell und einem Modul. Das Grundlagentutorial in der Python-Dokumentation könnte da helfen.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
TorstenVoelker
User
Beiträge: 142
Registriert: Mittwoch 5. Februar 2025, 12:55

Ja Dennis Danke für die Antwort , ja wie Blackjack schon geschrieben hat den hatte ich kopiert und wollte statt den Manuellen Eintrag, den aus der Datenbank .

Also für mich ist das schon ein schweres Kapitel das mit dem Datetime und time und etc .

Da ich nur am Tag 2 Stunden Zeit habe um zu lernen und versuchen , ist das alles Schwerfällig.
Antworten