Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ COleDateTimeSpan::GetTotalSeconds()返回秒数+;10281600_C++_Mfc_Coledatetime - Fatal编程技术网

C++ COleDateTimeSpan::GetTotalSeconds()返回秒数+;10281600

C++ COleDateTimeSpan::GetTotalSeconds()返回秒数+;10281600,c++,mfc,coledatetime,C++,Mfc,Coledatetime,我成功地创建了COleDateTimes,然后减去它们以创建COleDateTimeSpan。出于某种原因,调用GetTotalSeconds()方法突然开始返回一个巨大的数字,它似乎是秒数加上10281600。我相信这是以前的工作 以下是我正在使用的代码: m_trace.Trace(_T(" Current time: ")+COleDateTime::GetCurrentTime().Format(_T("%H:%M:%S"))); m_trace.Trace(_T(" Time to c

我成功地创建了COleDateTimes,然后减去它们以创建COleDateTimeSpan。出于某种原因,调用GetTotalSeconds()方法突然开始返回一个巨大的数字,它似乎是秒数加上10281600。我相信这是以前的工作

以下是我正在使用的代码:

m_trace.Trace(_T(" Current time: ")+COleDateTime::GetCurrentTime().Format(_T("%H:%M:%S")));
m_trace.Trace(_T(" Time to compare: ")+vI->m_codt_lastUpdated.Format(_T("%H:%M:%S")));

COleDateTimeSpan cdts = COleDateTime::GetCurrentTime() - vI->m_codt_lastUpdated;
m_trace.Trace(_T(" Comparison result formatted: ")+cdts.Format(_T("%H:%M:%S")));

int n = (COleDateTime::GetCurrentTime() - vI->m_codt_lastUpdated).GetTotalSeconds();
CString strNumber;
strNumber.Format(_T(" Comprarison result in seconds: %d"),n);
m_trace.Trace(strNumber);
m_trace.trace()
是我的跟踪方法。奇怪的是,运行Format()表明COleDateTimeSpan所持有的实际值没有问题,从跟踪结果可以看出:

Current time: 11:13:53
Time to compare: 11:07:04
Comparison result formatted: 00:06:49
Comprarison result in seconds: 10282009

我不知道怎么处理这个。。。任何帮助都将不胜感激。

这很正常。请注意,偏移量正好可以被一天中的秒数整除。请记住,COleDateTime存储的是日期,而不是时间。所以简单的解释是m_codt_LastUpdate存储了过去的日期。就在119天前。您以前从未注意到这一点,因为当您测试代码时,总是会得到当天记录的最新更新值。你的Format()调用根本不显示日期;我修改了格式来显示日期,你是对的,先生。然而,这意味着问题必须在于设置。我正在类定义中设置m_codt_lastUpdated,如下所示:
m_codt_lastUpdated=COleDateTime::GetCurrentTime()
。。有没有理由不更新日期值?啊,没有,我已经知道了。。。一个子程序正在从数据库中更新它,它正在读取美式日期。所以它将m_last更新为5月9日,而不是9月5日。谢谢你的帮助