Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Try und catch mit CTime funktioniert nicht

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.01.2009, 13:49 Uhr
StefanKittel



Hallo,

ich habe eine kleine Routine der ich ein Datum übergebe und die mir das alter zu Heute in Tagen liefert. Wenn die Eingabe nun falsch ist, so stürzt CTime mit einer Exception ab. Ich bekomme es aber nicht hin das mit try und catch abzufangen und finde auch bei google nichts.
Hat Jemand eine Idee?

Stefan

_Datestring = "20090813" ok
_Datestring = "20090899" crash


C++:
    CTime        mailDownloadDate;
    SYSTEMTIME    mailDownloadDate2;

    mailDownloadDate2.wYear = atoi(_Datestring.Left(4));
    mailDownloadDate2.wMonth = atoi(_Datestring.Mid(4,2));
    mailDownloadDate2.wDay = atoi(_Datestring.Mid(6,2));

    try
    {
        mailDownloadDate = mailDownloadDate2;
        CTimeSpan ageInDays = CTime::GetCurrentTime() - mailDownloadDate;
        return (int) ageInDays.GetDays();
    }
    catch ( CException * e )
    {
        // Handle the exception
        e->Delete();
        return 0;
    }
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.01.2009, 15:03 Uhr
Tommix



Hallo,
vermutlich bist Du mit COleDateTime besser bedient:

C++:
CStringA _Datestring = "20090899";

COleDateTime  mailDownloadDate;
SYSTEMTIME    mailDownloadDate2;

memset(&mailDownloadDate2, 0, sizeof(SYSTEMTIME)); //  .wHour usw. = 0;
mailDownloadDate2.wYear = atoi(_Datestring.Left(4));
mailDownloadDate2.wMonth = atoi(_Datestring.Mid(4,2));
mailDownloadDate2.wDay = atoi(_Datestring.Mid(6,2));

try
{
    mailDownloadDate = mailDownloadDate2;
    if (mailDownloadDate.GetStatus() != COleDateTime::valid) throw "error";
    COleDateTimeSpan ageInDays = COleDateTime::GetCurrentTime() - mailDownloadDate;
    return (int) ageInDays.GetDays();
}
catch (char const*)
{
    // Handle the exception
    return 0;
}



- Tommix

Dieser Post wurde am 28.01.2009 um 15:05 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.01.2009, 16:15 Uhr
StefanKittel



Prima!
Vielen Dank.

Stefan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: