Uhrzeitberechnung c++



  • Hallo Zusammen,
    ich versuche eine Uhrzeitberechnung zu programmieren.Hab jedoch einige Probleme...
    Meine verallgemeinerte Uhr habe X Stunden von 0 bis X-1.Also die Anzahl der Stunden ist eine naturliche Zahl. Wie kann ich die neue Uhrzeit neu berechnen lassen, wenn die aktuelle Uhrzeit aktuell und die Zeitdifferenz delta bekannt sind?
    Mein Programm(siehe unten)
    #include<iostream>

    using namespace std;

    void main()
    {
    int N, delta, Uhraktuell, Uhrneu;

    cout << "Geben Sie die Anzahl der Stunden, die aktuelle Uhr und die Zeitdifferenz an:" << endl;
    cin >> N;
    cin >> Uhraktuell;
    cin >> delta;
    
    
    if (Uhraktuell >= 0 && Uhraktuell <= N &&delta <=N )
    {
    	if (delta > 0)
    	{
    		Uhrneu = Uhraktuell + delta;
    		if (Uhrneu<=N)
    		{
    		cout << "Es ist" << Uhrneu << endl << "Uhr" << endl;
    		}
    		else
    		{
    			cout << " Fehler";
    		}
    	}
    	else
    	{
    		Uhrneu = Uhraktuell +delta;
    		cout << "Es ist" << Uhrneu << "Uhr" << endl;
    	}
    }
    else(Uhraktuell <= 0 && Uhraktuell >= N && delta>=N);
    {
    	cout << "Geben Sie aktuelle Uhrzeit >=0 und <= N und delta<=N ein ";
    }
    

    }

    Es funktioniert, jedoch liegt bei mir das Problem, wenn ich bsp-weise für die Anzahl der Stunden 12 eingebe sprich 12 Stunden, für die aktuelle Uhrzeit 3 Uhr, und für delta also für die Zeitdifferenz -4, kommt bei mir als Ergebniss -1 statt 11 Uhr raus.

    Ich hoffe Ihr könnt mir weiterhelfen.

    Grüsse , Jannick



  • Das else(Uhraktuell <= 0 && Uhraktuell >= N && delta>=N); macht sicher nicht das was du erwartest.

    Benutze einen Debugger und schau dir an, was dein Programm macht.

    Es heißt int main.



  • #include <iostream>
    
    int main()
    {
    	std::cout << "Total Hours: ";
    	int hours;
    	std::cin >> hours;
    
    	std::cout << "Current Hour: ";
    	int current_hour;
    	std::cin >> current_hour;
    
    	std::cout << "Delta: ";
    	int delta;
    	std::cin >> delta;
    	
    	delta %= hours;
    	if (( current_hour + delta ) < 0)
    		delta += hours;
    
    	std::cout << "Result: " << current_hour + delta << '\n';
    }
    

Anmelden zum Antworten