Aktuelles Datum und aktuelle Uhrzeit ausgeben
-
Hallo liebe Gemeinde.
Ich wollte das aktuelle Datum und Uhrzeit ausgeben. Ich habe jetzt erst versucht, die aktuelle Uhrzeit auszugeben:
#include <iostream> #include <ctime> using namespace std; int main() { cout << "Wie ist die aktuelle Uhrzeit?\n"; cout << clock; return 0; }
Ich bekomme jedoch nur irgendeine Adresse ausgegeben...
Was habe ich falsch gemacht?
Danke für die Antworten im Voraus.
Gruß
Max
-
Du hast einfach nicht gelesen ...
-
Ich hab mir dafür mal eine kleine Klasse geschrieben:
Date.cpp
#include "Date.h" //statische Variablen time_t Date::timestamp; tm* Date::now; stringstream Date::converter; string Date::get_time(int flag = 0) { string sztime = ""; fillTime(); if(now->tm_hour < 10) sztime += '0'; sztime += IntToStr(now->tm_hour) + ':'; if(now->tm_min < 10) sztime += '0'; sztime += IntToStr(now->tm_min); if (flag == 1) { sztime += ':'; if(now->tm_sec < 10) sztime += '0'; sztime += IntToStr(now->tm_sec); } return sztime; } string Date::get_date() { string date; fillTime(); date = IntToStr(now->tm_mday) + '.'; date += IntToStr(now->tm_mon) + '.'; date += IntToStr(now->tm_year + 1900); return date; } void Date::fillTime() { timestamp = time(0); now = localtime(×tamp); } string Date::IntToStr(int i) { string tmp; converter.clear(); converter << i; converter >> tmp; return tmp; }
Date.h
#ifndef _DATE_H_ #define _DATE_H_ #include <iostream> #include <ctime> #include <string> #include <sstream> using namespace std; class Date { private: static time_t timestamp; static tm* now; static stringstream converter; public: static string get_time(int flag); static string get_date(); static void fillTime(); static string IntToStr(int i); }; #endif
Beispiel:
#include <iostream> #include "../Date.h" using namespace std; int main() { while(true) { cout << "Zeit: " << Date::get_time(0) << endl; cout << "Datum: " << Date::get_date() << endl; Sleep(1000); system("cls"); } return 0; }
:xmas1:
-
ScottZhang schrieb:
Du hast einfach nicht gelesen ...
Bei "C++ Reference" heißt es
"Get the current calendar time as a time_t object.
The function returns this value, and if the argument is not a null pointer, the value is also set to the object pointed by timer."
Habe ich das richtig verstanden, dass ich ersteinmal ein Objekt als time_t erzeugen muss und dann mit einem Pointer darauf zeigen muss??
Hier habe ich einen Programmcode gefunden, der funktioniert, aber ich verstehe ihn nicht, da ich ihn nicht selber geschrieben habe:
#include <iostream> #include <time.h> #include <ctime> using namespace std; int main() { time_t Zeitstempel; tm *nun; Zeitstempel = time(0); nun = localtime(&Zeitstempel); cout << nun->tm_mday << '.' << nun->tm_mon+1 << '.' << nun->tm_year+1900 << " - " << nun->tm_hour << ':' << nun->tm_min << endl; return 0; }
Gruß Max
Edit:
Auf der Internetseite http://www.willemer.de/informatik/cpp/timelib.htm heißt es wie folgt:
"Mit der Funktion time() erhalten Sie die aktuelle Uhrzeit auf die Sekunde genau."
Mir ist nur nicht klar, welche Parameter die Funktion time() erhalten muss, damit ich diese verwenden kann?? Kann mir jemand auf die Sprünge helfen?
-
ScottZhang hat dir doch schon einen Link gegeben. Die Doku zu time() ist einen Klick entfernt davon...
Streng dich doch mal nen bischen mehr an.
-
Ersteinmal danke für die Antworten.
supporter schrieb:
ScottZhang hat dir doch schon einen Link gegeben. Die Doku zu time() ist einen Klick entfernt davon...
Streng dich doch mal nen bischen mehr an.Die C++ Reference habe ich mir ja oft genug durch gelesen, aber ich kapier es dennoch einfach nicht.
Einmal heißt es, dass es sich um ein Objekt handelt ("Get the current calendar time as a time_t object.") und zum anderen heißt es unter Parametern, dass ich einen Pointer darauf erzeugen soll, wo der Wert gespeichert ist ("Pointer to an object of type time_t, where the time value is stored.")
Aber dennoch ist es mir nicht ganz plausibel ...
Soll ich jetzt auf time_t einen Pointer deklarieren?
Ich würde jetzt folgenden Code schreiben:
#include <iostream> #include <ctyme> using namespace std; int tim_t; int *ptim_t = &tim_t; cout << "t" << *ptime << "\n"; return 0; }
Oder habe ich es mir zu einfach vorgestellt?
Gruß
Max
-
Du kannst es auch einfach so machen:
int main() { time_t rawtime; time ( &rawtime ); cout << ctime (&rawtime) ; }
-
silent_max schrieb:
Oder habe ich es mir zu einfach vorgestellt?
Ja, Du brauchst erst ein Buch und musst die Grundlagen verstehen. Bist Du nicht doch blurry333? Die Fragen und die (gefakte?) Lernresistenz sind sehr ähnlich.
-
out schrieb:
Du kannst es auch einfach so machen:
int main() { time_t rawtime; time ( &rawtime ); cout << ctime (&rawtime) ; }
std::ctime
ist erst mit C++11 dazugekommen.
Lieberint main() { time_t rawtime = time(0); cout << asctime(&rawtime) ; }
Tachyon schrieb:
silent_max schrieb:
Oder habe ich es mir zu einfach vorgestellt?
Ja, Du brauchst erst ein Buch und musst die Grundlagen verstehen. Bist Du nicht doch blurry333? Die Fragen und die (gefakte?) Lernresistenz sind sehr ähnlich.
So wie ich es verstanden habe, hatte blurry eine geistliche Behinderung. :xmas2:
-
Sone schrieb:
So wie ich es verstanden habe, hatte blurry eine geistliche Behinderung. :xmas2:
Naja, geistlich war die vermutlich nicht, obwohl man man Geistlichen manchmal tatsächlich nicht sicher sein kann. Aber wo hast Du die Info her?
-
Tachyon schrieb:
Sone schrieb:
So wie ich es verstanden habe, hatte blurry eine geistliche Behinderung. :xmas2:
Naja, geistlich war die vermutlich nicht, obwohl man man Geistlichen manchmal tatsächlich nicht sicher sein kann. Aber wo hast Du die Info her?
Nein, das hab ich mir einfach so zusammengereimt. Ich meine, er hatte AFAIR (kann sein das ich mich nicht recht erinnere :D) eine Rechtschreibschwäche (-> Legastheniker ?) und eine starke Lernresistenz. Ob man das gleich als geistliche Behinderung einstuft, da bin ich mir nicht sicher. Aber irgendwie hatte ich den Eindruck, er muss verdammt bräge sein, wenn er zwei Jahre lang nicht weiter kommt... und dazu die einfachsten Tipps gänzlich ignoriert. Wiederholt und wiederholt.
Edit: Stopp mal. Legastheniker? Wir sind im Internet
argument invalid. Aber das andere zählt.
-
Sone schrieb:
...letzter Beitrag...
Ich denke mal eher, dass er trollen wollte. Seine Threads sind nicht selten in "Kontroversen" ausgeartet.
-
silent_max schrieb:
Mir ist nur nicht klar, welche Parameter die Funktion time() erhalten muss, damit ich diese verwenden kann?? Kann mir jemand auf die Sprünge helfen?
Gibt es hier im Forum schon fix&fertig. Siehe den Manipulator now (2. Codeschnipsel).
Anwendung:
cout << now << endl; // gibt die aktuelle Zeit aus
-
std::time( static_cast< std::time_t* >( 0 ) );
Ist der cast nicht irgendwie ... unnötig? :xmas1:
Nur so allgemeine Code-Stil Frage.
-
Sone schrieb:
std::time( static_cast< std::time_t* >( 0 ) );
Ist der cast nicht irgendwie ... unnötig? :xmas1:
Nur so allgemeine Code-Stil Frage.möglich - der Code ist noch aus der vor-C++11-Zeit und der cast diente vermutlich der Beruhigung des Compilers.
-
Tachyon schrieb:
Ja, Du brauchst erst ein Buch und musst die Grundlagen verstehen. Bist Du nicht doch blurry333? Die Fragen und die (gefakte?) Lernresistenz sind sehr ähnlich.
Nein ich bin nicht blurry333 ...