SYSTEMTIME als Long Wert?
-
Gibt es eine funktion, welche mir die SYSTEMTIME Structur als Longwert convertiert?
-
Du kannst einen CTime mit deiner SYSTEMTIME initialisieren, und dann den Wert über GetTime() wieder ausgeben lassen.
-
auch wenn die SYSTEMTIME UTC format ist? dürfte ja nich jucken oder:) :xmas1:
EDIT: Geht das auch in ansi C?
-
ANSI C hat nicht im C++-Teil zu suchen. SYSTEMTIME ist eine Struktur von Microsoft aus dem Header <winbase.h>.
Am einfachsten gehst du hin und machst das kurz selber:
long systemtime_to_long(::SYSTEMTIME const& time) { std::stringstream ss; ss << time.wYear << time.wMonth << time.wDayOfWeek << time.wDay << time.wHour << time.wMinute << time.wSecond << time.wMilliseconds; long result(0L); return (ss >> result) ? result : 0L; }und umgekehrt ... ist nicht wirklich schwer, oder?
-
ich muss ja die einzlenen Werte in sekunden umrechen und summieren nehm ich an:)
long t = time.wSeconds + time.wMinutes *60 + time.wHour *3600 + .......aber so einfach wird nicht gehen zwecks schaltjahre, und unterschiedliche monants tag längen?
oder werden die zahlen hintereinander gelegt und als zahl convertiert?
13:45:23 long l= 134523;glaub i net
-
Tja, das kommt wohl ganz darauf an, was du mit dem SYSTEMTIME Wert eigentlich vorhast. Wenn du nur einen monoton steigenden Wert benötigst, reicht wohl das aneinanderreihen (wobei du bei einstelligen Angaben aufpassen mußt). Wenn du mit dem Ergebnis rechnen willst, ist time_t vermutlich am geeignetsten.
(eine Alternative zu Ctime wäre es, die Elemente in einen 'struct tm' umzukopieren und dann durch mktime() zu jagen)
PS: Wenn du Probleme mit der Zeitzone hast, reicht eine Addition, um die Stundenangabe zu korrigieren.
-
naja ich will das ding in ne datenbank speichern (Access) und die erwartet denn long wert des Datum/Zeit Typs...
ich steh aufm schlau..
und UTC nehm ich deswegen, weil meine Zeit eine eindeutige Schlüsse für eine Logging datensatz ist... und eindeutig ist er nur im UTC format:)
-
Will Access da nen Unix Time Stamp haben? Dann such mal bei google.de, yahoo.de oder was auch immer.