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
これを処理する方法がよくわかりません...どんな助けでも大歓迎です。