Zeit-Differenz errechnen
Zeit-Differenz errechnen
Hi... Ich hab bereits die Suche verwendet, aber irgendwie nichts passendes gefunden.
Ich möchte in ein Spiel einen Timer einbauen (XY Stunden, Minuten, Sekunden bis zum Zeitpunkt).
Mein erster Ansatz war leider nicht ganz passend, da PB offenbar das UNIX-Format für DateTime verwendet (Sekunden seit 1970).
Gibt es eine andere Methode, mit der man eventuell direkt Datum(Ziel) minus Datum(Aktuell) rechnen kann, das man dann einfach ausgeben kann (z.B. mit hour(), second() und so weiter)..?
Ich möchte in ein Spiel einen Timer einbauen (XY Stunden, Minuten, Sekunden bis zum Zeitpunkt).
Mein erster Ansatz war leider nicht ganz passend, da PB offenbar das UNIX-Format für DateTime verwendet (Sekunden seit 1970).
Gibt es eine andere Methode, mit der man eventuell direkt Datum(Ziel) minus Datum(Aktuell) rechnen kann, das man dann einfach ausgeben kann (z.B. mit hour(), second() und so weiter)..?
na gerade die umrechung in UNIX bringt doch vorteile:
Beispiel:
Abstand von 14.3.2009 10:12 bis 21.3.2009 23:21
also: ab in UNIX: Date([Jahr, Monat, Tag, Stunde, Minute, Sekunde])
dann erhälst du
1237025520
1237677660
Die Differenz : 652140
Nun "Rückrechnen", also mit min=60s, h=60min, d=24h ...
also zB:
gibt dir dann
7 Tage
13 h
9 min
0 s
Beispiel:
Abstand von 14.3.2009 10:12 bis 21.3.2009 23:21
also: ab in UNIX: Date([Jahr, Monat, Tag, Stunde, Minute, Sekunde])
dann erhälst du
1237025520
1237677660
Die Differenz : 652140
Nun "Rückrechnen", also mit min=60s, h=60min, d=24h ...
also zB:
Code: Alles auswählen
Debug Int(Differenz/(60*60*24)) ; Tage
Debug Int(Differenz/(60*60)) % (24) ; Stunde
Debug Int(Differenz/(60)) % (60) ; Minute
Debug Int(Differenz) % (60) ; Sekunde
7 Tage
13 h
9 min
0 s
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
So ist es. Solche "linearen Zeitformate" wie das von UNIX wurden ja zu dem Zweck erfunden, dass man damit bequem rechnen kann.STARGÅTE hat geschrieben:na gerade die umrechung in UNIX bringt doch vorteile
Übrigens wurde so eine Frage gerade vor 3 Tagen hier beantwortet.

Gruß, Little John
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ein Spiel kann man pausieren, dann sollte der timer auch nicht weiterlaufen.Ich möchte in ein Spiel einen Timer einbauen (XY Stunden, Minuten, Sekunden bis zum Zeitpunkt).
und je nach Genre kann man auch die Ablaufgeschwindigkeit ändern,
da sollte sich der Timer ebenfalls anpassen.
wer RiseOfNations oder andere Empire-Games spielt, weiß das,
ein Game mit einer "Spielzeit" von zwei stunden kann eine bis vier realstunden dauern,
je nachdem wie man zwischendrin schneller oder langsamer laufen läßt.
den Spiel-Timer muss man also auch selber zählen lassen, und nicht einfach an die Systemzeit hängen.
ob man dann den TimeStamp benutzen mag, oder sich eigene routinen schreibt, ist natürlich jedem seine sache.
ich persönlich wäre jetzt unsicher, wie ich den timestamp korrekt benutze für einen eigenen timer.
zwar ist die berechnung einer differenz auch nicht SO einfach ohne Timestamp,
aber man kann auch bei NULL anfangen, dann braucht man keine Differenz mehr....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- KeyKon
- Beiträge: 1412
- Registriert: 10.09.2004 20:51
- Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit) - Wohnort: Ansbach
- Kontaktdaten:
Du weist ja nich um was für ein Spiel es sich handelt...Kaeru Gaman hat geschrieben:ein Spiel kann man pausieren, dann sollte der timer auch nicht weiterlaufen.Ich möchte in ein Spiel einen Timer einbauen (XY Stunden, Minuten, Sekunden bis zum Zeitpunkt).
Evtl. is es ja was was auch weiterläuft wenn es garnich läuft, wenn du verstehst was ich mein^^
(\/) (°,,,°) (\/)
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> Du weist ja nich um was für ein Spiel es sich handelt...
natürlich nicht, da war KatSeiko ja auch nicht gerade sehr mitteilsam, wie auch John schon anmerkte...
er hat ja nicht einmal beschrieben, was sein erster, angeblich gescheiterter Ansatz war,
nur dass es wohl daran gescheitert war, dass PB den UNIX-Timestamp benutzt.
.... was so fruchtbar ist wie gar keine Aussage, also Bundestagsreif.
aber
die Wahrscheinlichkeit dass ein Game pausiert werden kann und das
nicht mitgezählt werden soll ist wesentlich höher als das Gegenteil.
natürlich nicht, da war KatSeiko ja auch nicht gerade sehr mitteilsam, wie auch John schon anmerkte...
er hat ja nicht einmal beschrieben, was sein erster, angeblich gescheiterter Ansatz war,
nur dass es wohl daran gescheitert war, dass PB den UNIX-Timestamp benutzt.
.... was so fruchtbar ist wie gar keine Aussage, also Bundestagsreif.
aber
die Wahrscheinlichkeit dass ein Game pausiert werden kann und das
nicht mitgezählt werden soll ist wesentlich höher als das Gegenteil.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22