Datum- und Uhrzeitausgabe
-
LMwoot schrieb:
Gleicher Zugriff wie mit der Zeit nur die Structelemente heissen anders.
uhr->tm_day
uhr->tm_month <- hier bin ich mir nicht ganz sicher, kann auch tm_mon sein
und
uhr->tm_year fuer das jahransonsten einfach mal ausprobieren...
eine ausfuehrliche Doku darueber findest du uebrigens hier:
http://www.cplusplus.com/reference/clibrary/ctime/Trau mich schon gar nicht mehr fragen
Wenn ich das eingebe, stimmt mit der zeit alles zusammen:
time_t sekunden = time(NULL); tm *uhr = localtime(&sekunden); gotoxy(5,5); cout <<"Uhrzeit: "<<uhr->tm_hour<<":"<<uhr->tm_min<<":"<<uhr->tm_sec;
Aber wenn ich das mit dem Datum mache:
gotoxy(5,6); cout <<"Datum: "<<uhr->tm_day<<"."<<uhr->tm_month<<"."<<uhr->tm_year;
Gehts leider nicht. Bin ich zu blöd dafür?
-
Geht nicht ist keine Fehlerbeschreibung verdammte Axt!
Evtl. musst Du beachten dass der Monat von 0-11 (statt 1-12) geht und dass das Jahr minus 1900 geliefert wird (also 107 entspricht 2007).
-
LordJaxom schrieb:
Geht nicht ist keine Fehlerbeschreibung verdammte Axt!
Wenn ich das ins Menü rein schreibe:
gotoxy(5,6);
cout <<"Datum: "<<uhr->tm_day<<"."<<uhr->tm_month<<"."<<uhr->tm_year;kommen Fehlermeldungen namens:
[C++ Error] Unit1.cpp(106): E2316 'tm_month' is not a member of 'tm'
[C++ Error] Unit1.cpp(106): E2316 'tm_day' is not a member of 'tm'Wie kann ich dieses Problem beseitigen?
-
tm_sec
tm_min
tm_hour
tm_mday
tm_mon
tm_year
tm_wday
tm_yday
tm_isdstHier nochmal eine Uebersicht der ganzen Structelemente. Dieses stehen nach dem localtime() Funktionsaufruf alle in uhr zur Verfuegung.
Das Jahr muss wie schon erwaehnt eben +1900 gezaehlt werden und der Monat noch +1. Frag nicht warum... programmierer moegen es ja meist ein bisschen komplizierter als es eigentlich is
-
Das Problem ist beseitigt, indem du anstatt tm_day tm_wday benutzt und anstatt tm_month tm_mon
LG
-
Danke an allen!
Jetzt habe ich noch eine Frage, die jedoch nicht in diesen Thread passt:
Kurz gesagt: Wie gebe ich einen färbigen Text aus?
Siehe hier:
gotoxy(5,5); cout<<"Ich möchte diese Zeile zum Beispiel grün haben";
Eventuell möchte ich noch einen anderen Hintergrund (Bei einer Konsole).
Ich danke euch im Voraus!
-
Mithilfe von SetConsoleTextAttribute() (WINAPI).
MfG
-
Du brauchst ein Handle, der Konsolenausgabe... das fragst du so ab
HANDLE console_output = GetStdHandle(STD_OUTPUT_HANDLE);
Die windows.h hat zusaetzlich einige Konstanten defininiert, mit denen man leicht Farben mischen kann:
FOREGROUND_RED, FOREGROUND_GREEN, FOREGROUND_BLUE, FOREGROUND_INTENSITY
BACKGROUND_RED, BACKGROUND_GREEN, BACKGROUND_BLUE, BACKGROUND_INTENSITYJetzt kannst du die Funktion SetConsoleTextAttribute() mit den noetigen Parametern aufrufen:
SetConsoleTextAttribute(console_output, FOREGROUND_RED| FOREGROUND_INTENSITY | BACKGROUND_BLUE);
-
LMwoot schrieb:
Du brauchst ein Handle, der Konsolenausgabe... das fragst du so ab
HANDLE console_output = GetStdHandle(STD_OUTPUT_HANDLE);
Die windows.h hat zusaetzlich einige Konstanten defininiert, mit denen man leicht Farben mischen kann:
FOREGROUND_RED, FOREGROUND_GREEN, FOREGROUND_BLUE, FOREGROUND_INTENSITY
BACKGROUND_RED, BACKGROUND_GREEN, BACKGROUND_BLUE, BACKGROUND_INTENSITYJetzt kannst du die Funktion SetConsoleTextAttribute() mit den noetigen Parametern aufrufen:
SetConsoleTextAttribute(console_output, FOREGROUND_RED| FOREGROUND_INTENSITY | BACKGROUND_BLUE);
SUPER, DANKE!
Besser gehts nicht!
Nur das mit den Farben vermischen hbe ich noch nicht ganz kapiert...
Vielleicht hast du mal Zeit, dass du mir das nochmal erklärst.
Wenn nicht, ist es auch nicht so schlimm!
-
na ganz einfach...
FOREGROUND_RED | FOREGROUND_GREEN is soweit ich weiss Gelb (rot und gruen)
wie du da rot und gruen mischst kannst du auch rot und blau mischenFOREGROUND_RED | FOREGROUND_BLUE
das ergebnis kannst du erhellen
FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITYund das alles kannst du genauso auch mit dem hintergrund machen
FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_INTENSITY
so kannst du dann mit den farben in der console rumspielen.
das INTENSITY erhellt bzw. verdunkelt die vordergrund und hintergrundfarben nur.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Probiers mal mit diesem Schnipsel:
#include <stdio.h> #include <time.h> void main( ) { char dateStr [9]; char timeStr [9]; _strdate( dateStr); printf( "The current date is %s \n", dateStr); _strtime( timeStr ); printf( "The current time is %s \n", timeStr); }
das funzt bei meiner "analoguhr-blödes-schulprojekt" wunderbar