Datum / Zeitberechnungen



  • Hallo Leute, wie kann ich bspw. zu einer SYSTEMTIME 13 Monate, oder 127 Tage, oder 598 Stunden hinzuzählen? Wie geht dass?



  • Entweder du rechnest dir eben selber aus, wie du die einzelnen Member der Struktur verändern musst, oder du nimmst die Variante, die in der MSDN-Library bei den Remarks zur SYSTEMTIME-Struktur aufgeführt ist:

    * Convert the SYSTEMTIME structure to a FILETIME structure.
    * Copy the resulting FILETIME structure to a ULARGE_INTEGER structure.
    * Use normal 64-bit arithmetic on the ULARGE_INTEGER value.



  • @flenders

    Ja aber wenn ich nun beim Januar einen Monat hinzuzählen muss, dann muss ich nur 30 Tage hinzuzählen, wenn ich allerdings beim Februar einen Monat hinzuzählen muss, dann sind es 31 Tage usw.

    Und wieviel muss ich denn dem 64Bit - Integer hinzuzählen, wenn ich die Systemtime um eine Millisekunde erhöhen will?

    Kennt die WinApi wirklich keine Datums / Zeitarithmetik??? 😮 😮 😮



  • Ishildur schrieb:

    Kennt die WinApi wirklich keine Datums / Zeitarithmetik??? 😮 😮 😮

    Afaik nicht... 🙄

    Du wirst dann wohl von Hand die einzelnen Member berechnen müssen 😉



  • Naja, Datums/Zeitberechnungen sind für mich ehrlich gesagt ein Buch mit 7 Siegeln!!!
    Gibt es irgendwo eine Referenze, wie unser Kalender aufgebaut ist, mit all seinen Schaltjahren und 30,31 Tage Monaten usw...



  • Ishildur schrieb:

    Gibt es irgendwo eine Referenze, wie unser Kalender aufgebaut ist, mit all seinen Schaltjahren und 30,31 Tage Monaten usw...

    Naja, das mit 30 oder 31 Tagen ist ja immer gleich - und ob Schaltjahr oder nicht, dafür gibt es 3 einfache Regeln:

    * Glatt durch 4 teilbare Jahre sind Schaltjahre.
    * Glatt durch 100 teilbare Jahre sind jedoch keine Schaltjahre.
    * Glatt durch 400 teilbare Jahre sind aber wieder Schaltjahre.

    Quelle: http://de.wikipedia.org/wiki/Schaltjahr


Anmelden zum Antworten