MFC 程序加入一个 SysDateTimePick32 控件,假设成员变量是 CTime 类型的 m_date,MSDN 里不是说只能处理 1970 年以后的日期么,当日期小于 1970 年时会产生异常,没错。但是当日期特别特别小,例如小于 1900 年的时候,UpdateData 返回 TRUE!而且没有异常抛出!这时取得的时间是 1970年1月1日!还有一个问题就是异常虽然从 UpdateData 产生,但不知根源在哪里,也不知是什么类型的异常。而且日期在 1900 和 1970 年之间时抛出的异常在调用UpdateData 的函数里 catch 不到,但在外层函数里能以...类型 catch 到。请问是怎么回事。分不是问题!100分相许!
我认为问题出在ctime上。ctime的范围是1970到2038.用coledatetime型就没有问题了
m_tt是coledatetime型成员变量
m_tt.SetDate(1972,1,1);
UpdateData(FALSE);
MessageBox("look date control"); m_tt.SetDate(1801,1,1);
UpdateData(FALSE);