Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 11:47

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C++] Immer aktuelle Uhrzeit ausgeben lassen

Discussion on [C++] Immer aktuelle Uhrzeit ausgeben lassen within the C/C++ forum part of the Coders Den category.

Closed Thread
 
Old   #1

 
.Quadral's Avatar
 
elite*gold: 30
Join Date: Aug 2014
Posts: 1,098
Received Thanks: 127
[C++] Immer aktuelle Uhrzeit ausgeben lassen

Guten Tag liebe Coder,

heute zum zweiten mal ich

Ich habe ewig in der SuFu geschaut und nicht das gefunden was ich will, nun kommt mir die Frage ob es überhaupt möglich ist.

Ich möchte das in einer Konsolenanwendung die aktuelle Zeit da steht.
Ich möchte jedoch nicht das die Zeit da steht wenn ich Starte, sondern die Zeit soll ich immer automatisch jede Sekunde aktualisieren, wie eine normale Uhr eben.

Ist das möglich und wenn ja wie?

Mfg

€dit: Desweiteren möchte ich noch wissen, wie ich es machen kann das mir Ausgegeben wird das Programm schließt sich in 10 Sekunden und es zählt halt runter so das da 9, 8, 7, 6, 5, 4, 3, 2, 1 und programm schließt sich kommt.

Sorry für die möglichen Rechtschreibfehler.
.Quadral is offline  
Old 12/10/2014, 14:52   #2




 
bloodx's Avatar
 
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,539
Weis nicht ob's mittlerweile mit std::chrono oder ähnlichen andere Wege gibt ?
PHP Code:
time_t t;
struct tmts;

while(
true)
{
time(nullptr);
ts localtime(&t);
SetConsoleTitleA(asctime(ts));

bloodx is offline  
Old 12/10/2014, 15:02   #3

 
.Quadral's Avatar
 
elite*gold: 30
Join Date: Aug 2014
Posts: 1,098
Received Thanks: 127
Bei dieser Art von Code, läuft es ganz oft durch, ich will ja das da die Zeit steht 15:03:12 z.B. und das aktualisiert sich jede Sekunde.

€dit: Und auch nur die Uhrzeit kein Datum Jahr Tag usw.

€dit2: So funktionierts einiger Maßen:
PHP Code:
#include <Windows.h>
#include <time.h>
#include <iostream>

int main()
{
    
time_t t;
    
struct tmts;

    while(
true)
    {
        
time(nullptr);
        
ts localtime(&t);
        
SetConsoleTitleA(asctime(ts));
        
Sleep(1000);
        
system("CLS");
    } 

    
getchar();
    return 
0;

€dit3: Ist es möglich das ich es so ausgebe: 'Tag-Monat-Jahr - Hour:Min:Sec' ?
.Quadral is offline  
Old 12/10/2014, 15:07   #4




 
bloodx's Avatar
 
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,539
du kannst über ts-> auf die einzelnen Werte zugreifen:

struct tm {
int tm_sec; /* Sekunden */
int tm_min; /* Minuten */
int tm_hour; /* Stunde (0 bis 23) */
int tm_mday; /* Tag im Monat (1 bis 31) */
int tm_mon; /* Monat (0 bis 11) */
int tm_year; /* Jahr (Kalenderjahr minus 1900) */
int tm_wday; /* Wochentag (0 bis 6, Sonntag = 0) */
int tm_yday; /* Tag im Jahr (0 bis 365) */
int tm_isdst; /* Ungleich null bei US-Sommerzeitkonvertierung */
};

ne schleife wirst du ja selber hinkriegen dass sie sich jede Sekunde Aktualisiert ?
bloodx is offline  
Old 12/10/2014, 15:13   #5

 
.Quadral's Avatar
 
elite*gold: 30
Join Date: Aug 2014
Posts: 1,098
Received Thanks: 127
Das Problem ist ich will nicht nur Uhrzeit ausgeben sondern viel Text und die Uhrzeit soll da oben einfach stehen, deswegen ist mein system("CLS"); da sehr unpraktisch.
.Quadral is offline  
Old 12/10/2014, 15:19   #6




 
bloodx's Avatar
 
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,539
Du kannst nen Thread erstellen für dein Timer - std::thread

und den Text dann in einer anderen Funktion ausgeben lassen oder halt in main wie du möchtest.

Ja es ist möglich es auszugeben in einem anderen Format - sieh dir die Struct an dann siesht du ja welche Werte enthalten sind daraus bastelst du dir einen string.
bloodx is offline  
Old 12/10/2014, 15:34   #7

 
.Quadral's Avatar
 
elite*gold: 30
Join Date: Aug 2014
Posts: 1,098
Received Thanks: 127
Okay danke!

Wenn ich das ganze jetzt in einer kleinen Windowsform machen möchte, wie kann ich da die Uhrzeit so zeigen?

Heißt in diesem Fenster steht nur die aktuelle Uhrzeit, mit dem aktuellen Code funktioniert das ja nicht.


€dit:
Wenn ich ts->tm_year sage, gibt er mit 114 aus..

Was tun??
.Quadral is offline  
Old 12/10/2014, 16:59   #8
 
elite*gold: 8
Join Date: Sep 2014
Posts: 625
Received Thanks: 178
Quote:
tm_year int years since 1900
qqdev is offline  
Old 12/11/2014, 01:52   #9



 
+Yazzn's Avatar
 
elite*gold: 420
Join Date: Jan 2012
Posts: 1,082
Received Thanks: 1,000
Quote:
Originally Posted by qqdev View Post
Quote:
int tm_year
years since 1900
std::tm - cppreference.com
FTFY.
+Yazzn is offline  
Old 12/11/2014, 09:02   #10
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Bitte bitte bitte kein system() verwenden. Es ist schlecht, unsicher und ressource fressend.
Schreibe dir lieber eine eigene Function die dein Konsolen Output leert.

So wie ich das sehe, setzt du die aktuelle Zeit als Titel der Konsolen Anwendung, wieso clearst du dann überhaupt?

Und ein Countdown der runter zählt ist auch einfach...
Code:
std::cout << "Das Programm beendet sich in 10 Sekunden" << std::endl;

for (int i = 10; i > 0; --i) {

	std::cout << i << std::endl;
}
Ich konnte dein Problem leicht mithilfe eines Observers lösen können. Sobald sich die Zeit ändert -> notify und der Text wird geändert. Wie effizient es gegenüber einem Thread es in diesem Fall ist, kann ich dir nicht sagen.
XxharCs is offline  
Old 12/12/2014, 15:19   #11
 
.Lol's Avatar
 
elite*gold: 2
Join Date: Jan 2010
Posts: 422
Received Thanks: 1,160
Eine eher unschöne single threaded Version.
PHP Code:
#include <chrono>
#include <iostream>
#include <iomanip>
#include <thread>

#ifdef _WIN32
    #include <windows.h>
#endif

...


// from: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682022%28v=vs.85%29.aspx
#ifdef _WIN32
void clearConsole()
{
    
auto hConsole GetStdHandle(STD_OUTPUT_HANDLE);

    
COORD coordScreen = { 0};    // home for the cursor 
    
DWORD cCharsWritten;
    
CONSOLE_SCREEN_BUFFER_INFO csbi;
    
DWORD dwConSize;

    
// Get the number of character cells in the current buffer. 

    
if (!GetConsoleScreenBufferInfo(hConsole, &csbi))
    {
        return;
    }

    
dwConSize csbi.dwSize.csbi.dwSize.Y;

    
// Fill the entire screen with blanks.

    
if (!FillConsoleOutputCharacter(hConsole,        // Handle to console screen buffer 
        
(TCHAR' ',     // Character to write to the buffer
        
dwConSize,       // Number of cells to write 
        
coordScreen,     // Coordinates of first cell 
        
&cCharsWritten))// Receive number of characters written
    
{
        return;
    }

    
// Get the current text attribute.

    
if (!GetConsoleScreenBufferInfo(hConsole, &csbi))
    {
        return;
    }

    
// Set the buffer's attributes accordingly.

    
if (!FillConsoleOutputAttribute(hConsole,         // Handle to console screen buffer 
        
csbi.wAttributes// Character attributes to use
        
dwConSize,        // Number of cells to set attribute 
        
coordScreen,      // Coordinates of first cell 
        
&cCharsWritten)) // Receive number of characters written
    
{
        return;
    }

    
// Put the cursor at its home coordinates.

    
SetConsoleCursorPosition(hConsolecoordScreen);
}
#else
void clearConsole() 
{
    
std::cout << "\x1B[2J\x1B[H";
}
#endif

int main(int argc_TCHARargv[])
{
    
using clock std::chrono::system_clock;


    while (
true) {
        
clearConsole();
        
auto timeNow clock::to_time_t(clock::now());
        
std::cout << "Aktuelle Uhrzeit: " << std::put_time(std::localtime(&timeNow), "%H:%M:%S");
 
        
// 1 Sekunde thread sleep führt zu Ungenauigkeiten (Bruchteile eine Sekunde)
        
std::this_thread::sleep_for(std::chrono::seconds(1));
    }
    
    
    return 
0;

.Lol is offline  
Old 01/07/2015, 01:37   #12
 
hazejp's Avatar
 
elite*gold: 0
Join Date: Jan 2015
Posts: 62
Received Thanks: 13
\r Escape Sequence

Code:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

#define SEC(x) ((x)*1000)

int main() {
time_t t;
struct tm* s;
for (;;) {
time(&t);
s = localtime(&t);
printf("%s\r",asctime(s));
Sleep(SEC(1));
}
}
hazejp is offline  
Old 01/07/2015, 07:34   #13

 
.Quadral's Avatar
 
elite*gold: 30
Join Date: Aug 2014
Posts: 1,098
Received Thanks: 127
#closerequest
.Quadral is offline  
Old 01/07/2015, 12:08   #14

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
#closed
snow is offline  
Closed Thread

Tags
aktualisieren, aktuelle uhrzeit, c++, cpp


Similar Threads Similar Threads
MYSQL Anzahl der Datensätze ausgeben lassen
03/15/2014 - Web Development - 9 Replies
Hey, Vorerst danke für eure Hilfe! Dies ist mein derzeitiger Code. $test = $mysql_query("SELECT COUNT(*) FROM testies"); Und dann unten :
[Java]Array vom Typ String > Inhalt ausgeben lassen
10/30/2012 - General Coding - 2 Replies
Ahoi epvp, String array= {"x", "y"}; Es handelt sich um diesen Array vom Typ String. Der befindet sich in Klasse "mitarbeiterSuche", allerdings will ich ihn in der Klasse "main" ausgeben. Woran kann das liegen? Eclipse sagt mir dauernd: "array cannot be resolved to a variable"
[Howto]Ingame Uhrzeit "Aktuelle Uhrzeit"
07/29/2012 - Metin2 PServer Guides & Strategies - 17 Replies
Gelöscht auf Crank's Wunsch weil der Kerle Zickig auf die Section ist :D



All times are GMT +1. The time now is 11:49.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.