Countdown in c++



  • mist, falsches Beispiel. Ich meinte 24h nach 2016-10-29T12:00+02:00, denn die Zeitumstellung ist ja erst von 2-3 Uhr.



  • und dann passiert so etwas wie in venezuela, wo die zeit einfach so alle paar jahre um ganze oder halbe stunden verändert wird (das letzte mal 2016, 1. mai um 0:30)



  • naja zeitumstellung spielt in dem fall keine rolle, das datum ist in 7 tagen



  • Dann gibts 2 wichtige Konstanten:

    60×60×24=8640060 \times 60 \times 24 = 86400 - So viele Sekunden gibts pro normalem Tag (also ohne Schaltsekunden und Zeitumstellung)
    π×107\pi \times 10^7 - So viele Sekunden hat ein Jahr, ungefähr jedenfalls 😉

    Dennoch: auch in deinem Beispiel überleg mal was "7 Tage" genau bedeutet. Meinst du damit 7 Tage weiter, aber gleiche Uhrzeit oder 7*24 Stunden später, ggf. durch Zeitumstellung ne andere Uhrzeit? Beides können legitime Ergebnisse sein, je nachdem, was du willst.



  • und woher weiß ich jetzt die zahl für den 21.07. um 08:00 uhr?



  • nicopro98 schrieb:

    und woher weiß ich jetzt die zahl für den 21.07. um 08:00 uhr?

    Wie wärs damit:

    nicopro98 schrieb:

    in meinem Buch aus dem ich lerne gehts im moment um zeit und datum.

    Mit welcher Funktion hast du denn die aktuelle Zeit ermittelt?



  • ich habs schon 😃 hier ist mein code

    #include<iostream>
    #include<ctime>
    #include<windows.h>
    
    using namespace std;
    
    int main()
    {	
    
    	bool update = true;
    	time_t zeit;
    	int endzeit = 1468999000, countdown;
    
    	while (update)
    	{
    	    system("cls");
    		countdown = endzeit - (time(&zeit));
    		cout << "Open Beatz Festival\n";
    		cout << "Zeit bis zum Einlass:\n________________________\n";
    
    		cout << "Verbleibende Tage: " << (countdown/86400) << endl;
    		cout << "verbleibende Stunden: " << (countdown/3600) - (countdown/86400)*24 << endl;
    		cout << "Verbleibende Minuten: " << (countdown/60) - (countdown/3600)*60 << endl;
    		cout << "verbleibende Sekunden: " << (countdown) - (countdown/60)*60 << endl;
    
    	    Sleep(1000);
    	}
    	if ( time(&zeit) < endzeit)
    	{
    		cout << "Open Beatz Beginnt!";
    	}
    
    	system("Pause");
    }
    


  • Da du ja schon <ctime> hast, dann schau dir auch mal die anderen Funktionen darin an.
    Z.B. mktime: http://www.cplusplus.com/reference/ctime/mktime/

    Und kennst du den Modulo-Operator % ?
    Der macht die Berechnung etwas übersichtlicher.



  • Und kennst du den Modulo-Operator % ?
    Der macht die Berechnung etwas übersichtlicher.

    ne kenn ich nicht was macht der?



  • nicopro98 schrieb:

    Und kennst du den Modulo-Operator % ?
    Der macht die Berechnung etwas übersichtlicher.

    ne kenn ich nicht was macht der?

    Der ergibt den Rest einer Ganzzahldivision.



  • kannst du noch erklären wie ich den benutze? ich hab erst letzte woche angefangen programmieren zu lernen



  • Sekunden sind z.B. der Rest nach Division durch 60.

    Also könntest du statt

    cout << "verbleibende Sekunden: " << (countdown) - (countdown/60)*60 << endl;
    

    schreiben

    cout << "verbleibende Sekunden: " << countdown % 60 << endl;
    

    Du rechnest den Rest aktuell von Hand aus, indem du mit (countdown/60) ausrechnest, wie viele ganzzahlige Vielfache von 60 in die Zahl reinpassen und diese Zahl*60 dann von countdown subtrahierst. Das nennt sich allgemein einfach "Rest".

    -> https://de.wikipedia.org/wiki/Division_mit_Rest


Anmelden zum Antworten