Zeit berechnen mit C++?



  • Hi,
    ich hab mit in den Kopf gesetzt eine Consolen-Anwendung zu schreiben die die restliche Arbeitszeit berechnet.

    Man soll in das Programm eingeben können wann man heute gekommen ist und wie viele Überstunden man hat.

    Daraus soll dann berechnet werden wie lang man noch Arbeiten muss bzw. um wie viel Uhr man gehen kann ohne ins minus zu kommen.
    Ein Arbeitstag geht 7 Stunden und 48 Minuten. Pause eine halbe Stunde.

    Jetzt kommt das Problem: Ich habe keine Ahnung wie ich das am besten umsetzen soll bzw. welche Befehle ich dazu brauche.

    Kann mir hier jemand weiterhelfen?

    Danke schonmal im Vorraus!



  • Erstmal solltest du dir einen Plan machen, was das Programm genau tun soll.

    • soll das Programm permanent laufen und z.B. minütlich die restliche Arbeitzeit anzeigen
    • soll es wie eine Art "CheckIn/CheckOut" sein wo man mittels Tastendruck sagt: "ich fange jetzt meine Pause an", usw.

    Erst wenn du genau weißt was du willst, kannst du mit der Umsetzung beginnen.



  • @It0101 So komplex soll es nicht sein. Es soll nur einmal die entsprechende Zeit ausgeben. Die pausen zeit könnte man rein theoretisch auch gleich von der Arbeitszeit abziehen. Oder eben man gibt die zeit ein die man pause macht. Viel mehr Aufwand wäre das ja auch nicht.



  • Sieh dir den chrono-Header an und lies/sieh dir Beiträge von Howard Hinnant an (auf Stackoverflow / youtube).

    Generell:

    #include <chrono>
    auto checkinTime = std::chrono::system_clock::now(); // oder irgendeine andere Zeit
    auto mittagspause = std::chrono::minutes(30);
    auto endtime = checkinTime + std::chrono::hours(7) + std::chrono::minutes(48) + mittagspause;
    // Ueberstunden berechnen...
    
    //****
    //Oder mit chrono_literals auch kürzer:
    
    using namespace std::chrono_literals;
    auto mittagspause = 30min;
    auto endtime = std::chrono::system_clock::now() + 7h + 48min + mittagspause;
    
    


  • @BeatONE sagte in Zeit berechnen mit C++?:

    ich hab mit in den Kopf gesetzt

    Übersetzt: meine Hausaufgabe ist



  • @manni66 😂 nein, bis jetzt haben wir in der Schule nichts der gleichen gemacht, deshalb frage ich eben hier 😃



  • Rechne in Sekunden (Minuten geht auch)

    Also die Eingaben (Stunde:Minute) in Sekunden umrechnen,
    Dann deine Berechnung machen.
    Dann für die Ausgabe wieder in Stunde:Minute umrechnen.