CTime CTimeSpan 遇到诡异有关问题,时间加减法不对

CTime CTimeSpan 遇到诡异问题,时间加减法不对

// test
CTime tbank1(1999,3,19,22,15,0);
//tbank1 = mddata::StringToCTime("20130725","11:32:22");

TRACE(_T("tbank1:%d-%d-%d  %d-%d-%d \n")
,tbank1.GetYear()
,tbank1.GetMonth()
,tbank1.GetDay()
,tbank1.GetHour(),tbank1.GetMinute(),tbank1.GetSecond());

CTime tbank2(1999,3,19,22,15,30);
//tbank2 = mddata::StringToCTime("20130725","11:32:30");

TRACE(_T("tbank2:%d-%d-%d  %d-%d-%d \n")
,tbank2.GetYear()
,tbank2.GetMonth()
,tbank2.GetDay()
,tbank2.GetHour(),tbank2.GetMinute(),tbank2.GetSecond());


CTimeSpan span;
//if (tbank1 > tbank2)
//{
// span = tbank1 - tbank2;
// time_insert = tbank1;
//}
//else
//{
span = tbank2 - tbank1;
// time_insert = tbank2;
//}

TRACE(_T("span:%d  %d  %d  %d  %d  %d")
,span.GetTotalHours()
,span.GetTotalMinutes()
,span.GetTotalSeconds()
,span.GetHours()
,span.GetMinutes()
,span.GetSeconds());


输出结果:
tbank1:1999-3-19  22-15-0 
tbank2:1999-3-19  22-15-30 
span:0  0  0  0  30  0


如果时间改一下:
CTime tbank1(1999,3,19,22,15,0);
CTime tbank2(1999,3,19,22,16,0);
得出的结果如下:
tbank1:1999-3-19  22-15-0 
tbank2:1999-3-19  22-16-0 
span:0  0  1  0  60  0


为什么
span.GetMinutes()得到的是秒数啊,而且其他的几个get都不对啊,怎么回事,有点崩溃了,谁给指点一下
我系统win764位旗舰版,用的vs2005sp1
千万别告诉重装之类的,那些就不用回答了!

------解决方案--------------------
VC6+XP下的结果:
span:0  1  60  0  1  0
------解决方案--------------------
你错在最后一个trace,类型不对,前三个函数返回longlong,后三个返回long。
所以trace函数应改为: TRACE(_T("span:%I64d  %I64d  %I64d  %ld  %ld  %ld"),


VS2003.net,XP sp3亲测:

第一组值:
tbank1:1999-3-19  22-15-0