Is da der Wurm drin??



  • Ich hab mal wieder ein Problem und zwar folgendens. Ich arbeite nachwievor an meinem Rechner mit dem man die differenz zwischen 2 Daten errechnen kann. nun habe ich folgenes Problem. Das Programm führt einen haufen ineinander verstrickte if Anweisungen aus er vergleicht die jahre nach = und <, danach die möglichen monatskombinationen nach >, = und < und danach das ganze mit den tagen. nun habe ich aber irgendwie das problem das bei einer der fälle, selbst wenn die if Anweisung dazu leer is das maximale Minus das ein long hergiebt rauskommt woher kann das kommen?? Alle anderen if anweisungen arbeiten einwandfrei.
    Bin fast schon am verzweifeln.
    THX 4 ALL Help



  • Schau doch nochmal in den alten Thread, ich glaube da sind ein paar if-arme Lösungen drin.
    http://www.c-plusplus.net/forum/viewtopic.php?p=343036&highlight=#343036

    Hellsehen können ich nicht?

    Aber Raten
    Typischer Fehler Variable nicht initialisiert =>
    Hast du die Variable die das maximale Minus (MinInt) hat, vor deiner Routine schon mal mit einem dir bekannten Weert gefüllt.
    Falls nein tu das mal, Wenn dann der eingefüllte Wert drinsteht wird die Varible durch deine Code nicht geändert, steht trotzdem MinInt drin kannst du durch zeilenweises Debuggen ja die Stelle finden wo das passiert und korrigieren falls dort der fehler sitzt.



  • Wo ist das Problem?

    CTime tag1(2003,9,6,0,0,0);
    CTime tag2(2003,12,24,0,0,0);
    
    CTimeSpan spanne = tag2 - tag1;
    
    int Tag = spanne.GetDays();	// Oh Mann in 109 Tagen ist Weihnachten :)
    

    Oder hab ich hier was falsch verstanden?



  • Ja du hast hier was falsch verstanden. Ich hab den Fehler schon gefunden hab versehentlich einen long mit einem CString verglichen. Aus platzgründen gebe ich hier mal den Quelltext nicht zum besten weil der etwas zu lang wäre. Und das was mein Programm ausspuckt ist eher von der sorte 10Tage 2Monate 9Jahre und nicht nur Tage.



  • Geht aber auch mit CTimeSpan 😉



  • Is jetzt auch wurst, jetzt hab ich dafür genug Quelltext geschrieben (ca 2-3 DINA4 Seiten voll) und es funktioniert so wie ich es will. Was will man mehr. Mein Fehler war übrigends ich habe 2 Variablen die gleich heißen und sich nur unterscheiden weil die eine mit m_s und die andere mit m_l anfängt. Und da hab ich bei einem Vergleich m_s statt m_l geschrieben.



  • Nimms dir zu Herzen und wähle bessere Variablennamen!



  • Wieso bessere Variablennamen?? Wenn ich den Anfangstag abfange dann giebt es bei mir halt m_sAnfangstag als string, m_lAnfangstag als long und m_fAnfangstag als Float oder double. Das is ganz logisch aufgebaut und Tippfehler passieren nunmal.


Anmelden zum Antworten