Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   verlorene Berechnungs-Sekunde (http://www.expert-advisor.com/forum/showthread.php?t=6739)

AVT 04.08.20 19:59

verlorene Berechnungs-Sekunde
 
Ich berechne den Zeitunterschied zwischen UTC, lokaler und Serverzeit.
Da es ja sein kann, daß man einen Unterschied von halben Stunden hat und ich keine Lust habe, die Std./Minuten einzugeben, rechne ich also:
Code:

  double CServUtcDiff=(TimeGMT()-TimeCurrent() );
  Print(" UTC: ",TimeToStr(TimeGMT(),TIME_DATE|TIME_SECONDS),
        " Ser: ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS),
        " Loc: ",TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS),
        " CServUtcDiff =",DoubleToString(CServUtcDiff,2)
        );

Das dumme ist nur - je nachdem in welcher Sekunde ich grade bin, ist das Ergebnis ungenau - also statt der erwarteten 3600.00 erhalte ich 3599.00 Sekunden. Wenn ich dieses Ergebnis nähme, um die Zeiten umzurechnen (also z.B. UTC+9 wäre Serverzeit UTC+10, theoretisch), dann fehlt mir ne Sekunde.
Irgendwelche Ideen wie man es anders machen kann?
(von der Idee, einfach nur mit UTC Zeiten zu rechnen, bin ich abgekommen, weil Tageszuweisungen und -verschiebungen damit komplizierter werden).
AVT

MA-EA 04.08.20 21:25

Wenn viel los ist, und man etliche Uhrzeiten berechnet und was weiß ich, dann kommts eben zu Verzögerungen/Ungenauigkeiten. Benutz doch einfach die Server-Zeit. Hour() / Minute() / Seconds()


https://docs.mql4.com/dateandtime/hour


https://docs.mql4.com/dateandtime/minute


https://docs.mql4.com/dateandtime/seconds


Warum willst Du die ganzen Zeiten vergleichen?

AVT 04.08.20 21:49

Zitat:

Zitat von MA-EA (Beitrag 44178)
Wenn viel los ist, und man etliche Uhrzeiten berechnet und was weiß ich, dann kommts eben zu Verzögerungen/Ungenauigkeiten. Benutz doch einfach die Server-Zeit. Hour() / Minute() / Seconds()

Gerne, sag mir nur, wie meine Serverzeit für Tokio (UTC+9) Börseneröffnung um Tokio lokal 9-11:30 lautet :confused: :confused: :confused:
AVT

MA-EA 05.08.20 01:24

Steht bestimmt im Internet. ;)

Eigentlich braucht man ja nur Hour().


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:34 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum