Forum: PC-Programmierung datentyp zeit bitte hilfe


von chucky84 (Gast)


Lesenswert?

ich möchte gerne die uhrzeit eingelesen bekommen!! welchen datentyp gibt
es, denn ich bin mir fast sicher, dass es einen vordefinierten gibt !!!

bitte um hilfe !!

danke !!

von Die meisten Elche (Gast)


Lesenswert?

Deine Tastatur ist kaputt 111!!!!!!elf


Angenommen, Du möchtest in C programmieren, dann könntest Du mal
nachsehen, ob bei Deinem Compiler eine Headerdatei namens "time.h"
dabei ist. Und in die guckst Du mal rein.

Solltest Du in C unter einem Microsoft-Betriebssystem programmieren,
dann könntest Du auch die Win32-API-Funktion GetSystemTime bzw
GetLocalSystemTime verwenden - beide füllen eine Struktur vom Typ
SYSTEM_TIME (definiert in den tiefen von windows.h).

Aber Deine Tastatur ist ja kaputt, da wird das etwas schwierig werden.



!!!!!1111elf

von Charles (Gast)


Lesenswert?

Das kommt darauf an, unter welcher Entwicklungsumgebung

Standard C benutzt time.h

MFC z.B. die CTime Class

http://msdn2.microsoft.com/en-us/library/8bs2t7ed.aspx

von A.K. (Gast)


Lesenswert?

Es gibt zwei Philosophien bei Derstellung von Datum/Uhrzeit:

(1) Konsequent in einer Grundeinheit, seien das nun Sekunden,
Mikrosekundern oder was auch immer. Aus Unix abgeleitet sind hier
Sekunden seit 1970 gängig, folglich in allen aktuellen Betriebssystemen
oft anzutreffen. Vorteil: Platzbedarf, Vergleich einfach,
Zeitzonenkorrektur einfach. Nachteil: Umwandlung in natürliche
Darstellung ist ziemlich umständlich, vor allem wenn noch gelegentliche
Schaltsekunden berücksichtigt werden sollen.

(2) Getrennte Speicherung der einzelnen Komponenten. Beispiel DOS/FAT:
Da wird die Zeit als 16bit Wert in 5:6:5 Bits dargestellt, was nur
passt wenn man auf jede zweite Sekunde verzichtet. Vorteil: leicht
natürlich darstellbar. Nachteil: rechnen kann man damit praktisch
überhaupt nicht, schon eine Zeitzonenkorrektur ist umständlich.

von Die meisten Elche (Gast)


Lesenswert?

Richtig geil ist die interne Zeitdarstellung von Windows NT (und neuer)
im Datentyp FILETIME. Das ist ein 64-Bit-Wert, der die seit 1604
vergangenen 100-Nanosekundenintervalle zählt.

von MS-Doku Frustrierter (Gast)


Lesenswert?

@Die meisten Elche
Zitat MSDN (Platform SDK: Windows System Information):
"The FILETIME structure is a 64-bit value representing the number of
100-nanosecond intervals since January 1, 1601 (UTC)."
Tatsächlich beginnt bei WinNT-basierten Systemen die FILETIME bereits
1601! ;-) Nicht, daß es wirklich wichtig wäre...

von Bartli (Gast)


Lesenswert?

Wichtig ist es nicht, aber interessant. Übrigens ist das keine Erfindung
von Microsoft (ausser vielleicht die Idee, 100ns Intervalle zu
verwenden).

http://www.decimaltime.hynes.net/dates.html#ansi

"ANSI dates are counted from 1601-01-01 and were adopted by the
American National Standards Institute for use with COBOL and other
computer languages. This epoch is the beginning of the last 400-year
cycle by which leap-years are calculated in the Gregorian calendar. The
last year of this cycle is the only one divisible by 100 that is a
leap-year, which was the year 2000, and which was followed by a new
400-year cycle beginning with 2001. 32-bit versions of the Microsoft
Windows operating system count units of one hundred nanoseconds from
this epoch."

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.