Datum auf Richtigkeit prüfen!



  • Hallo,

    Ich möchte wenn win User in ein Eidtfeld ein Datum eingibt, dass dieses direkt geprüft wird ob es richtig ist! Sprich das dieses Datum auch wirklich existiert!
    z.b Soll er mir sagen das der 29.02.2004 ein richtiges Datum ist, wobei der 29.02.2005 kein richtiges Datum ist! (Schaltjahr)
    Natürlich soll auch beim 31.09.2004 gemeckert werden!
    Hat irgendwer von euch nen kleinen Tip dazu? Will nicht umbedingt diese funktionalität neu erfinden müssen, wenn es bereits irgendwo schon mal jemand veröffentlicht hat!

    1000 Dank schonmal

    Sven



  • (x/4) und ((nicht (x/100) oder (x/400)) => x == Schaltjahr
    😉



  • Danke

    aber genau so weit war ich auch schon! Ich hoffte nur das irgendwer schon mal über eine "fertige" Methode in der nicht nur die Schaltjahresproblematik sondern auch das prüfen ob das Datum auch sonst existiert, gestolpert ist!

    Sven



  • Das CDateTimeCtrl magst du nicht?

    Das hat nämlich das und andere Sachen gleich inclusive. 😃



  • Das CDateTimeCtrl magst du nicht?

    hab ich bisher noch nicht probiert,( auch nicht gekannt) werd ich gleich mal testen!

    Danke für den Tip!

    Sven



  • ** UPS **

    Das CDateTimeCtrl magst du nicht?

    hab ich bisher noch nicht probiert,( auch nicht gekannt) werd ich gleich mal testen!

    Danke für den Tip!

    Sven

    **Sorry wg doppelpost**



  • Oder erstell dir eine COleDateTime Variable und setze mit SetDate ein Datum. Am Rückgabewert erkennst du dann, ob es geklappt hat (Datum existiert) oder nicht. Schaltjahre usw. sind da auch schon drin.



  • Danke hab es mit CDateTimeCtrl hingekommen!

    CDateTimeCtrl	m_picker;  // member auf DateTimePicker (in der .h)
    
    void CMeinProg::OnDatetimechangeDatetimepicker2(NMHDR* pNMHDR, LRESULT* pResult) 
    {                                                    
    	m_picker.GetWindowText(m_meinCString);                       
    	*pResult = 0;
    }
    

    funzt soweit super

    thx a lot

    sven


Anmelden zum Antworten