[C/C++] Zinsrechnung per Zeitdifferenz

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Chieftrain, 20. Oktober 2009 .

Schlagworte:
  1. 20. Oktober 2009
    Zinsrechnung per Zeitdifferenz

    Jungs ich hab ein Problem. Hab mich in C++ ein wenig reingelesen und wurde jetzt von nem Kumpel darum gebeten für ihn etwas zu Programmieren. Leider reicht meine Kenntniss dafür nicht aus und das habe ich ihm auch schon gesagt. Ich wollte trotzdem mal wissen, wie ihr das Lösen würdet. Folgende Aufgabe:

    Es soll pro Sekunde ein bestimmter Zinsbetrag auf eine bestimmte Summe addiert werden. Diese soll dann pro Sekunde (also sich ständig selbst aktualisierend) auf dem Pc ausgegeben werden, also in nem Fenster, oder auf dem Desktop (ähnlich wie rainmeter).

    Ich war schon soweit, das alles richtig berechnet wurde, bis mir auffiel, das das Programm ja auchmal ausgemacht, bzw. der PC mal für ein paar Tage ausgemacht wird. Das Problem was sich daraus ergibt ist ja, dass das Programm die Zeit, die zwischen dem Aus- und Anschalten war, ja noch mit draufrechnen muss.

    Also habe ich mir überlegt das per Datumsdifferenz zu machen. Und da war ich mit am Ende mit meinem Wissen. Habt ihr da vielleicht ne Idee?

    Im Grunde müsste man ja "nur" die Zeit vom Beginn des Zählens, bis jetzt Ausrechnen, also die Differenz. Diese dann in Sekunden und das dann durch die Zinsformel jagen. Wie würde das Aussehen?

    Vielen Danke schonmal
     
  2. 20. Oktober 2009
    AW: Zinsrechnung per Zeitdifferenz

    Ich programmiere nicht in C++ und kann daher nur allgemeine Tips geben. Normalerweise gibt es ein event, dass beim schließen des Programms getriggert wird. Wenn dies der fall ist, schreibst du die aktuelle Zeit (am besten als Unix Time) in eine datei. Diese liest du dann beim programmstart aus, berechnest die differenz zum aktuellen Zeitpunkt und rechnest so deine Zinsen drauf.
     
  3. 20. Oktober 2009
    AW: Zinsrechnung per Zeitdifferenz

    Hi...

    also die erste frage stellt sich ob es immer einen festen Starttermin für den
    Begin des zählens gibt oder ob der abhängig vom ersten Start des Programms
    ist. Wenn immer einen festen Starttermin gibt kannst du diesen ja
    als feste Konstante programmieren... anderenfalls würde ich wahrscheinlich
    das startdatum des Programms in einem Textfile ablegen und beim Start des
    Programms dieses auslesen.

    Zum spielen mit dem Datum würde ich dir empfehlen dir mal die DateTime-Struktur
    z.B. hier
    anzuschauen...

    Greetz Jojo
     
  4. 20. Oktober 2009
    AW: Zinsrechnung per Zeitdifferenz

    Jo gibt nen festen Zeitpunkt. Ich weiß halt bloß nicht, wie das aussehen soll. Das ist das ganze Problem, wie würde es denn aussehen?
     
  5. 20. Oktober 2009
    AW: Zinsrechnung per Zeitdifferenz

    Im Header <ctime> sind mehrere Funktionen definiert, die dir helfen können:

    Mit
    kannst du die aktuelle Zeit abfragen.

    Den Startzeitpunkt musst du manuelle definieren, dafür könntest du diese Struktur benutzen:
    struct tm - C++ Reference

    und danach mit
    ebenfalls in eine Zeit umwandeln.


    Mit
    Kann man nun den Abstand in Sekunden zwischen diesen Zeiten ausrechnen.
     
  6. 20. Oktober 2009
    AW: Zinsrechnung per Zeitdifferenz

    Du bist klasse! Ich werds, wenn ich gleich von der Arbeit nach Hause komme, direkt ausprobieren. Vielen dank!

    Interessant wäre noch die sekündliche Ausgabe. Habt ihr da vielleicht noch einen Anhaltspunkt?
     
  7. 20. Oktober 2009
    AW: Zinsrechnung per Zeitdifferenz

    Ist zwar aus nem Thread, aber vllt.hilft es dir:
    Code:
     DWORD Pause = 5; // 5 ms
     int FirstTick = GetTickCount();
    
     while (GetTickCount() - FirstTick < 1000) // 1000 ms
     {
     Sleep(Pause);
     }
     // hier die Ausgabe der Zeit einbauen
    Oder du nimmst einfach nen Timer. Den kannste ja auch auf 1000 ms einstellen.
     
  8. 20. Oktober 2009
    AW: Zinsrechnung per Zeitdifferenz

    Naja das Problem ist, dass ich nicht weiß, wie ich das Ausgeben soll, sprich ein Fenster wo die Zahl drinsteht und sich sekündlich aktualisiert.
     
  9. 21. Oktober 2009
    AW: Zinsrechnung per Zeitdifferenz

    Also in diesem Fall stehst du vor dem Problem, dass eine Aktualiesierung von Werten in einem Konsolenfenster nur mit externen Bibliotheken möglich ist. Allerdings ist so ein Konsolenfenster ja sowieso nicht schön, dass heißt du brauchst eine GUI.

    Wenn das Programm nur unter Windows laufen muss, kannst du direkt die Windows-GUI-Befehle benutzen, da der Aufbau des Fensters sehr einfach wäre. Hier findest du viel Code dazu, das meiste kannst du einfach kopieren, nur wenige Stellen musst du halt anpassen und deinen Code einfügen:
    C++ Win32 GUI Tutorial Part 2 - Tutorials - rohitab.com - Forums

    Ist natürlich leider sehr viel, alternativ kannst du ein GUI-Toolkit benutzen. Da wäre z.B. wxWidgets oder (sehr leichtgewichtig, aber keine native Oberfläche) fltk zu nennen.
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.