none
Unveränderbare Zeit RRS feed

  • Frage

  • Hi,

    Ich arbeite Zurzeit, mit anderen, an einem kleinen Projekt, wo wir regelmäßig berechnungen auf der Basis der aktuellen Zeit durchführen. Da sich die DateTime.Now ganz einfach durch das Ändern der Uhrzeit, auf dem SmartPhone, manipulieren lässt, stehe ich vor mittelschweren Problemen. Internetnutzung wollten wir so weit wie möglich vermeiden.

    Mein Frage, welche ich auch mit Google nicht beantworten konnte:

    Gibt es eine Art unveränderbare Systemzeit, die sich verwenden lässt?

    Bin dankbar für jede Antwort!

    Mfg

    Mittwoch, 22. Juni 2011 17:59

Antworten

  • Hi,

    du kannst nur über das Network Time Protocol (NTP) dein Problem lösen, wofür du jedoch a) eine Internet Verbindung brauchst und b) einen Zugriff auf TCP oder UDP benötigst. Da dies aber unter WP 7 (NoDo und früher) nicht geht, wirst du dir etwas anderes überlegen müssen.

     

    Gruß, Peter


    This posting is provided "AS IS" with no warranties, and confers no rights.
    Donnerstag, 23. Juni 2011 09:20
  • Hi,

    erst mit dem im Herbst erscheinenden Mango-Update erhälst du einen Zugriff auf Sockets, womit du dann die NTP-Zeit sauber abfragen kannst. Ab da sollte deiner Funktionalität nichts im Wege stehen (außer du bekommst keine Internetverbindung)...

    In der Zwischenzeit als Behelfslösung kannst du auch den Header einer Webanfrage auswerten, da der Webserver meist ein Datum und eine Uhrzeit als Antwort mitliefert. Ist lange nicht so genau wie NTP, aber mag vielleicht für deinen Anwendungsfall reichen.

     

    Gruß, Peter


    This posting is provided "AS IS" with no warranties, and confers no rights.
    Samstag, 25. Juni 2011 07:24

Alle Antworten

  • Hi,

    du kannst nur über das Network Time Protocol (NTP) dein Problem lösen, wofür du jedoch a) eine Internet Verbindung brauchst und b) einen Zugriff auf TCP oder UDP benötigst. Da dies aber unter WP 7 (NoDo und früher) nicht geht, wirst du dir etwas anderes überlegen müssen.

     

    Gruß, Peter


    This posting is provided "AS IS" with no warranties, and confers no rights.
    Donnerstag, 23. Juni 2011 09:20
  • Hi,

    benötigst du zwingend die aktuelle Zeit (wenn ja, diese könnte ja von Zeitzone zu Zeitzone unterschiedlich sein!) oder möchtest du nur sicherstellen, dass nicht jemand die Zeit zurücksetzt?

    Beim zweiten kann ich dir nur empfehlen, bei jedem Programmstart Tag/Uhrzeit inkl. Zeitzone zu speichern und beim nächsten Start dann überprüfen ob das aktuelle Datum/Uhrzeit größer als das vorherige ist. Hierbei solltest du natürlich, wenn man es richtig machen möchte, bei dem Vergleich auch die Zeitzone in die Berechnung einfließen lassen. Damit wird z. B. sicher gestellt, dass der Benutzer durch Datum/Uhrzeit zurückstellen die Demo-Laufzeit etc. nicht verlängert...


    Gruß

    Rudolf

    "Der Nachteil der Intelligenz besteht darin, dass man ununterbrochen gezwungen ist, dazuzulernen." Georg Bernhard Shaw

    Donnerstag, 23. Juni 2011 12:23
  • Erstmal danke für die Antworten.

    An Peter:

    Dann geht es also nicht mal übers Internet ?? Ich hatte gedacht wenigstens diese Option bliebe mir noch offen...

    An Rudolf:

    Ich versuch mein Problem deutlicher zu beschreiben:

    Der Inhalt des Programmes wird von der verstrichenen Zeit beeinflusst. Wenn das Programm läuft ist das kein Problem. Wenn aber dieses geschlossen und dann irgendwann später wieder gestarted wird, rechnet das Programm, über die vergangende Zeit, den Inhalt nach.
    Wenn jetzt innerhalb dieser Zeit, in der ja das Programm nicht läuft, die Zeit verändert wird, schlägt sich das auf mein Delta aus. Natürlich kann ich solche Sachen wie negative Zeit abfangen, aber diese Möglichkeit ist ja nur eine von Vielen.

    Kurz: Mir geht es um die verstrichene Zeit zwischen Programmende und Programmstart.

    Achja der Fehler dieses Deltas sollte nicht über einer Minute liegen.

    Mfg
    Donnerstag, 23. Juni 2011 14:19
  • Hi,

    erst mit dem im Herbst erscheinenden Mango-Update erhälst du einen Zugriff auf Sockets, womit du dann die NTP-Zeit sauber abfragen kannst. Ab da sollte deiner Funktionalität nichts im Wege stehen (außer du bekommst keine Internetverbindung)...

    In der Zwischenzeit als Behelfslösung kannst du auch den Header einer Webanfrage auswerten, da der Webserver meist ein Datum und eine Uhrzeit als Antwort mitliefert. Ist lange nicht so genau wie NTP, aber mag vielleicht für deinen Anwendungsfall reichen.

     

    Gruß, Peter


    This posting is provided "AS IS" with no warranties, and confers no rights.
    Samstag, 25. Juni 2011 07:24