我的代码。m_data1,m_data2分别是获取用户输入时间的两个控件的变量.         CTime time1,time2;
time1=CTime::GetCurrentTime ();
time2=CTime::GetCurrentTime ();

UpdateData();
m_data1.GetTime (time1);
m_data2.GetTime (time2);

CString str;
str.Format ("%d",(time1-time2));
MessageBox(str);
 
这里我有2个问题(1):日期相减是否能得到天数.
               (2):如果不能得到天数我该怎样得到两个日期之间相差的天数呢(包括相差为0,即两个日期相同的情况.)请高手们帮忙啊.

解决方案 »

  1.   

    (1) 不能
    (2) 简单的方法是用 mfc 的 COleDateTime 类型表示时间,可以相减得到 COleDateTimeSpan 表示的时间区间
      

  2.   

    补充一下,不推荐用 CTime , 这个表示的日期时间范围太小了。
      

  3.   

    看你要求那么强烈,我给你例子:
    CTime startTime = CTime::GetCurrentTime();// ... perform time-consuming task ...CTime endTime = CTime::GetCurrentTime();CTimeSpan elapsedTime = endTime - startTime;
      

  4.   

    哈哈.多谢大虾们指点.
    不过我只能给I_LOVE加分了.
    请多多支持阿
      

  5.   

    CTime time1,time2;
    time1=CTime::GetCurrentTime ();
    time2=CTime::GetCurrentTime ();

    UpdateData();
    m_data1.GetTime (time1);
    m_data2.GetTime (time2);
    CTimeSpan timespan=time1-time2;
    CString str;
    str.Format ("%d",(timespan.GetDays()));

    成功了。不胜感激 MessageBox(str);