Fehler bei Kalender



  • Hallo allerseits,

    arbeite gerade an einem Zeiterfassungsprogramm. Dabei verwende ich das Kalender-Tool zum auswählen des Datums. Zur Berechnung der Anzahl der Tage benutze ich die Klasse CTimeSpan. Nun ist mir ein ganz komischer Fehler untergekommen:

    CTime start1(2008,3,1,0,0,0);
    CTime end1(2008,3,30,0,0,0);
    CTime start2(2008,3,1,0,0,0);
    CTime end2(2008,3,31,0,0,0);
    
    CTimeSpan diff1 = end1-start1;
    CTimeSpan diff2 = end2-start2;
    
    TRACE("Delta1 = %d\n",diff1.GetDays());
    TRACE("Delta2 = %d\n",diff2.GetDays());
    

    Das Ergebnis lautet zweimal 29 !!!!! Ist das nur bei mir so?? Ich bin dem nachgegangen und bin daraufgekommen, dass dieser Fehler für jedes Jahr bei jedem letzten Sonntag/Montag im März auftaucht - echt ziemlich komisch.

    Hat irgendjemand eine Erklärung hierfür? Ist der Fehler bekannt? Oder taucht er etwa nur an meinem Rechner auf? Bin dankbar für jeden Hinweis.

    Grüße
    Nana



  • Kann Dir jetzt keinen Grund dafür geben warum das gleiche Ergebnis raus kommt, is aber bei mir genau so, wenn ich dagegen COleDatTime und COleDateTimeSpan Benutze bekomme ich

    Delta1 = 29
    Delta2 = 30

    raus. Davon abgesehen benutze ich immer COleDateTime wenn ich mit einem Dateun zuschaffen habe.

    Gruß Matthias



  • Ja, funktioniert - dankeschön.

    Hoffe mal dass bei dieser Klasse nicht irgendwo anders ähnliche Fehler auftreten!


Anmelden zum Antworten