Zeit differenz berechnen.

  • GM 8
  • Zeit differenz berechnen.

    Hallo zusammen,
    wie man es eventuell aus diversen Onlinegames kennt (bsp. die Stämme) sitze ich gerade an einem Spiel was eher in Echtzeit arbeitet, man baut ein Gebäude und 2 Stunden später ist es fertig.

    Dabei möchte ich den Zeit unterschied ermitteln (letzter Login und aktueller login) mit current_minute, current_hour, current_day...jedoch weiß ich nicht genau wie ich das anstellen soll, den Unterschied möchte ich am Ende in Minuten haben....habt ihr Ideen?

    greez. Lucke.
    @7rust-dev
  • Also wenn du zwei verscheidene Zeiten hast dann gehts ja leicht. Ich weiß nicht ob du das so meinst^^
    sagen wir du hast, die anzahl der tage, stunden und minuten vom letzten login und tage, stunden und minuten von jetztigen login

    GML-Quellcode

    1. /*-Vom letzten Login ausrechnen-*/
    2. mt1 = tage1 * 60 * 24; //Minuten tage
    3. ms1 = stunden1 * 60; //Minuten Stunden
    4. mg1 = mt1 +ms1 + m1 //Minuten Gesamt
    5. /*-Vom Jetztigen Login ausrechnen-*/
    6. mt2 = tage2 * 60 * 24; //Minuten tage
    7. ms2 = stunden2 * 60; //Minuten Stunden
    8. mg2 = mt2 +ms2 + m2 //Minuten Gesamt
    9. md = mg2 -mg1; //Minuten Differenz
    Alles anzeigen


    Ich weiß nicht ob du das so meinst, wenn nein dann schreib nochmal was du willst^^

    MfG Rodrog
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.
  • Oh.. das wusste ich nicht.
    Dann musst du rechnen wieviel Monate es sind und wieviele tage.. also zum Beispiel:
    Drittes Monat dritter Tag. (03.03.2011)

    Jänner, Februar, März
    Jänner: 31 Tage
    Februar: 28 Tage (Wenn Schaltjahr 29)
    März: 31 Tage
    Jetziges Monat: 3 Tage

    also musst du
    31 + 28 + 31 + 3 //eventuel auch noch +1 ( wegen Schaltjahr)
    Und schon hast du die Tage.

    p.S.:
    ob es ein Schaltjahr ist oder nicht kannst du so rausfinden:

    GML-Quellcode

    1. if (( (jahr mod 4==0) && (jahr mod 100!=0) ) || (jahr mod 400==0))



    MfG Rodrog
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.
  • Ich kenne keine Funktion wenn du das meinst, aber den Unterschied zwischen zwei Daten ausrechnen ist 10min arbeit. Also sitz dich ran an deinen Rechner und progge los ^^ Wenn du wo nicht weiterkommst schreib hier dein Problem, aber da du GML-Fortgeschrittener bist, denke ich das es kein Problem für dich sei.

    MfG Rodrog
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.
  • Es wäre deutlich einfach einen Unix Zeitstempel zu verwenden.

    Ursprünglich ja nur bei UNIX verwendet, heutzutage wohl einfach DER Standart für die Messung von Zeit in Variablen in der Programmierung.

    Gibt die Zeit seit 1970 in Sekunden zurück. Was ist der Vorteil? Da man immer nur in Sekunden rechnet, muss man keine Umrechnung durch die seltsame Konstellation von Tag zu Jahr, den verschiedenen Monaten etc. durchführen.

    Um zu prüfen ob seit dem letzten Wert 2 Stunden vergangen sind, prüft man einfach, ob der neue Wert um 60*60*2 = 7200 oder mehr gestiegen ist - done. ;)

    Und ich bin mir nicht ganz sicher, wie man den Zeitstempel im GM kriegt, aber ich meine, es war current_time.
  • Benutzer online 1

    1 Besucher