RT,这是什么情况呀?
我的代码如下假如说 date time的变量是:
                  
                  CDateTimeCtrl time2;                  SYSTEMTIME tm; Times.wHour = 8;
time2.GetTime(&tm);
tm.wHour += Times.wHour;
time2.SetTime(&tm);假如现在时间是【20:19:00】的话。+8应该是:【04:19:00】才对呀。可出现的是【0:00:00】
这到底是什么情况呀555555555
请问哪里有错误么?

解决方案 »

  1.   

    不能这么加,你20+8大于24了,这时tm就是个非法的数值,你把这个tm设置给time2,当然得出的是错误的值啊。你应该判断是否>24.
      

  2.   

    CDateTimeCtrl 绑定CTime对象,然后用CTimeSpan进行处理
    CTime tmCur = CTime::GetCurrentTime();
    CTimeSpan ts(0, 8, 0, 0);
    CTime tmResult = tmCur + ts;
      

  3.   

    CDateTimeCtrl time2;                   SYSTEMTIME tm; Times.wHour = 8; 
    time2.GetTime(&tm); 
    int a=Times.wHour +tm.wHour;
    if(a>24)
    tm.wHour = a-24; 
    else
    tm.wHour += Times.wHour; 
    time2.SetTime(&tm);