将两个合成的字符型日期先转换,然后再判断先后,以下的语句总是提示“类型不匹配”,而如果直接将s_datetime1,s_datetime2这样定义的话
CString s_datetime1 = "2003-11-8 16:14:37";
CString s_datetime2 = "2003-11-8 16:19:37";
就是正常的

CString s_datetime1,s_datetime2;
s_datetime1 = s_date1 + " " + s_time2;
s_datetime2 = s_date3 + " " + s_time4;         COleVariant v_time1(s_datetime1),v_time2(s_datetime2);
v_time1.ChangeType(VT_DATE);
v_time2.ChangeType(VT_DATE);
COleDateTime codt_datetime1 = v_time1;
COleDateTime codt_datetime2 = v_time2; COleDateTimeSpan i_ss;
i_ss = time2 - time1; if(i_ss.GetMinutes() > 0)
{
AfxMessageBox(">0");
}
else
{
AfxMessageBox("<=0");
}
请问是怎么回事?

解决方案 »

  1.   

    哪里类型不匹配了?比较时间大小,哪用的这么麻烦啊?见MSDN:bool operator ==(
       const COleDateTime& date 
    ) const throw( );
    bool operator !=(
       const COleDateTime& date 
    ) const throw( );
    bool operator <(
       const COleDateTime& date 
    ) const throw( );
    bool operator >(
       const COleDateTime& date 
    ) const throw( );
    bool operator <=(
       const COleDateTime& date 
    ) const throw( );
    bool operator >=(
       const COleDateTime& date 
    ) const throw( );
      

  2.   

    用CTime类型初始化比较很快的呀