我便写了一段代码,相对获取的时间增加30分钟,可是当我用FormatGmt整理并输出显示的时候却连小时也被意外的盖了,并且不着边际,代码如下:
        int nYear,nMonth,nDate,nHour,nMin,nSec;  
sscanf(arrivetime,"%d-%d-%d %d:%d:%d",&nYear,&nMonth,&nDate,&nHour,&nMin,&nSec);   
        CTime t(nYear,nMonth,nDate,nHour,nMin,nSec);     t=t+CTimeSpan(0,0,30,0);        arrivetime=t.FormatGmt("%Y-%m-%d %H:%M:%S");
各位帮帮忙,出现了什么问题?谢谢!

解决方案 »

  1.   

    CTime t1 = CTime::GetCurrentTime();
    int nYear = t1.GetYear();
    int nMonth = t1.GetMonth();
    int nDate = t1.GetDay();
    int nHour = t1.GetHour();
    int nMin = t1.GetMinute();
    int nSec = t1.GetSecond();
    CString arrivetime;
    sscanf(arrivetime,"%d-%d-%d %d:%d:%d",&nYear,&nMonth,&nDate,&nHour,&nMin,&nSec);   
            CTime t(nYear,nMonth,nDate,nHour,nMin,nSec);     t=t+CTimeSpan(0,0,30,0);        arrivetime=t.FormatGmt("%Y-%m-%d %H:%M:%S");
    AfxMessageBox(arrivetime);
      

  2.   

    FormatGmt并且这个是转化为世纪时的,和北京时间不一样,所以会出现时也不一样的样子。
      

  3.   

    你的
    int nYear,nMonth,nDate,nHour,nMin,nSec;
    这几个变量没有初始化,应该给它们赋初始值,如
    int nYear = 0,nMonth = 0,nDate = 0,nHour = 0,nMin = 0,nSec = 0;