The information in this article applies to:
SYMPTOMSThe function COleDateTime::operator=(const time_t& timeSrc) does not properly handle dates greater than December 31, 1999. For example, 02/05/2000 may be represented as 02/05/100. This bug can be seen in the Windows 95/Windows 98 diagnostics applet Msinfo32.exe. If the date on the computer is set to greater than December 31, 1999, the dates in the Msinfo32-generated report are not displayed properly. CAUSECOleDateTime::operator= calls a helper function in MFC called OleDateFromTm. This function is used to convert from the CRT time structure, which stores the year relative to 1900 (for example, 99 = 1999, 100 = 2000) to what the OLE date/time conversion functions expect. OleDateFromTm assumes that any year passed to it less than 100 is an abbreviated date relative to 1900 and adds 1900 to it. If the year is greater than 99 (that is, 100 = 2000) nothing is added. So, when 100 is passed (for 2000) to OleDateFromTm, nothing is added to it and the date comes back as 100. STATUSMicrosoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article. Q218877 Mfc40.dll Causes Programs to Display Wrong Date After 01/01/2000This bug was corrected in Visual Studio 6.0 Service Pack 3. For more information about Visual Studio service packs, please see the following articles in the Microsoft Knowledge Base: Q194022 INFO: Visual Studio 6.0 Service Packs, What, Where, Why Q194295 HOWTO: Tell That Visual Studio 6.0 Service Packs Are Installed MORE INFORMATION
Only applications built with Visual C++ 4.0 or 4.1 require this updated DLL. To determine if your executable is linked to the Mfc40.dll:
Additional query words: y2k MFC COleDateTime time_t OleDateFromTm
Keywords : kbservicepack kb2000 kbMFC kbVC400bug kbVC410bug kbVC600 kbVS600sp2 kbfaq kbVS600SP1 kbVS600sp3fix |
Last Reviewed: January 12, 2000 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |