[Home]
für Einsteiger!
Seite:  [1] 2 3 - Drucken

Inhalt:


Datum & Uhrzeit ermitteln

Um die Zeit herauszufinden, kannst du wie folgt vorgehen:
Quelltext[376B]Download
  1. //datumzeit.cpp
  2. //Gibt Datum&Zeit aus
  3. #include <iostream>
  4. #include <ctime>
  5.  
  6. int main()
  7. {
  8. std::time_t zeit;
  9. std::tm *jetzt;
  10.  
  11. zeit = std::time(0);
  12. jetzt = std::localtime(&zeit);
  13.  
  14. std::cout << jetzt->tm_mday << '.' << jetzt->tm_mon+1 << '.'
  15. << jetzt->tm_year+1900 << " - " << jetzt->tm_hour
  16. << ':' << jetzt->tm_min << std::endl;
  17.  
  18. return 0;
  19. }
  20.  

 
Halt! Nicht direkt das Fenster schließen! So schlimm ist es doch gar nicht...
 
Stelle dir "std::time_t" und "std::tm" als neuen Variablen-Typ vor! Sie kommen aus "ctime". In den ersten Zeilen der "main()"-Funktion werden zwei solcher Objekte erstellt:
  • "std::time_t" ist eigentlich ein "long"-Wert. In ihm werden die Sekunden seit dem 1.1.1970 gespeichert, wenn man die Funktion "time()" aufruft und den Rückgabewert übergibt. Alternativ kann auch die Addresse eines Zielobjekts (Typ: "std::time_t") übergeben werden (Call-by-reference!). Verwendet man "0" als Parameter, wird der Wert einfach zurückgegeben.

 
1179417811
Ist nicht der Code meines Panzerschranks, sondern der Wert von "zeit" zu diesem Augenblick. Dies hat sich allerdings auch soeben wieder geändert... ;)
 
  • "tm" ist eine Ansammlung von anderen Werten. Es handelt sich hierbei um integer, welche das Datum in für uns lesbarer Form speichern:
    • Tag
    • Monat
    • Jahr
    • Stunde
    • Minute
    • Sekunde
    • Wochentag
    • Sommerzeit?

 
Um aus unserer tollen Zahl ein solches Datum zu erzeugen, müssen wir nur die Funktion "localtime()" (oder "gmtime" für UTC) aufrufen. Als Parameter wird die Zeit als "time_t" übergeben, zurück wird ein "tm" gegeben. Nun können die Werte ausgelesen werden:
 
1179417811
17.5.2007 - 18:3 //3 Minuten nach sechs... ;)

 
Wichtig ist das folgende:
Was? Bemerkungen Wert Name der Variable
Tag des Monats 1-31 tm_mday
Monat im Jahr 0-11 tm_mon
Jahr seit 1900
---
tm_year
Tage seit Sonntag Wochentag 0-6 tm_wday
Tage seit Neujahr
---
0-365 tm_yday
Stunden
---
0-23 tm_hour
Minuten
---
0-59 tm_min
Sekunden
---
0-59 (61) tm_sec
Sommerzeit
---
s.u. tm_isdst
Die Pfeile ("->") geben an, dass die Eigenschaft ausgelesen werden soll. Normalerweise verwendet man Punkte ("."), da wir aber mit einem Zeiger arbeiten sind die Pfeile nötig. (mehr dazu im Kapitel über OOP!)
Die Sekunden "60" und "61" werden auf manchen Systemen als Schaltsekunden verwendet. "istdst" kann 0 sein (Winterzeit/Standardzeit), größer 0 (Sommerzeit) oder kleiner 0 (Fehler).

Wie geht's weiter?

Jetzt kommen wir kurz zu namespaces!
Seite:  [1] 2 3 - Drucken