比如2010/2/30这样肯定是错的,
包括闰年的2/29判断等等。有没有办法直接判断?谢谢

解决方案 »

  1.   

    用CTime可以实现,
    CTime tmpTime(2010,2,30,0,0,0);//年,月,日,时,分,秒
    if(tmpTime.GetDay()!=30)
       AfxMessageBox("日期格式不正确");
      

  2.   

    有一个函数:VarDateFromStr
    可以用这个函数来做判断,比如下的一个函数:
    double ParseDateTime(LPCTSTR lpszDate)
    {
    LPCTSTR pszDate = ( lpszDate == NULL ) ? _T("") : lpszDate; double m_dt(0);
    HRESULT hr;
    LPOLESTR p = T2OLE_EX((LPTSTR)pszDate, _ATL_SAFE_ALLOCA_DEF_THRESHOLD); if (FAILED(hr = VarDateFromStr( p, LANG_USER_DEFAULT, 0, &m_dt )))
    {
    if (hr == DISP_E_TYPEMISMATCH)
    {
    return 0;
    }
    else if (hr == DISP_E_OVERFLOW)
    {
    return -1;
    }
    else
    {
    return -1;
    }
    }
    return m_dt;
    }