Seite 1 von 1

Zeit-Differenz errechnen

Verfasst: 21.03.2009 03:32
von KatSeiko
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)..?

Verfasst: 21.03.2009 03:54
von STARGÅTE
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:

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
gibt dir dann
7 Tage
13 h
9 min
0 s

Verfasst: 21.03.2009 10:01
von Little John
STARGÅTE hat geschrieben:na gerade die umrechung in UNIX bringt doch vorteile
So ist es. Solche "linearen Zeitformate" wie das von UNIX wurden ja zu dem Zweck erfunden, dass man damit bequem rechnen kann.

Übrigens wurde so eine Frage gerade vor 3 Tagen hier beantwortet. :-)

Gruß, Little John

Verfasst: 21.03.2009 13:28
von Kaeru Gaman
Ich möchte in ein Spiel einen Timer einbauen (XY Stunden, Minuten, Sekunden bis zum Zeitpunkt).
ein Spiel kann man pausieren, dann sollte der timer auch nicht weiterlaufen.

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....

Verfasst: 21.03.2009 15:51
von KeyKon
Kaeru Gaman hat geschrieben:
Ich möchte in ein Spiel einen Timer einbauen (XY Stunden, Minuten, Sekunden bis zum Zeitpunkt).
ein Spiel kann man pausieren, dann sollte der timer auch nicht weiterlaufen.
Du weist ja nich um was für ein Spiel es sich handelt...
Evtl. is es ja was was auch weiterläuft wenn es garnich läuft, wenn du verstehst was ich mein^^

Verfasst: 21.03.2009 16:06
von Little John
KatSeiko schreibt ja, er will
direkt Datum(Ziel) minus Datum(Aktuell) rechnen
und das dann
(z.B. mit hour(), second() und so weiter)
ausgeben.

Aber solange man nicht weiß was er genau machen möchte, kann man wirklich nur spekulieren ...

Gruß, Little John

Verfasst: 21.03.2009 17:56
von Kaeru Gaman
> 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.

Verfasst: 23.03.2009 18:59
von KatSeiko
Nein, pausieren soll nicht möglich sein.. Ich bastel an einer Art Browser-Game, aufgebaut auf den Atomic Webserver.

Ich denke, ich hab raus, wie ich das löse, danke.

Verfasst: 23.03.2009 19:04
von KeyKon
ha! Tja Kaeru, da hatte ich wohl den richtigen Riecher ^^

Verfasst: 23.03.2009 19:38
von Kaeru Gaman
achwas, Riecher... du hast nur ein Q in eine Ligusterhecke geworfen, nix weiter. Bild