vc6.0 GetCurSel()为什么得不到正确日期
来源:百度知道 编辑:UC知道 时间:2024/06/18 15:09:33
CTime a;
CString t;
CMonthCalCtrl *mCtrl=(CMonthCalCtrl*)GetDlgItem(IDC_MONTHCALENDAR1);
mCtrl->GetCurSel(a);
CTime b(2011,7,2,0,0,0);
CTime c(2008,1,1,0,0,0);
m_SelectDay=a-(b-c);
我想知道为什么这个日期不准确,哪位给解释一下。
CTime a;
CString t;
CMonthCalCtrl *mCtrl=(CMonthCalCtrl*)GetDlgItem(IDC_MONTHCALENDAR1);
mCtrl->GetCurSel(a);
CTime b(2011,7,2,0,0,0);
CTime c(2008,1,1,0,0,0);
CTime time =a-(b-c);
t = time.Format("%Y 年%m月%d日");
AfxMessageBox(t);
对的啊
CTime operator +( CTimeSpan timeSpan ) const;
CTime operator -( CTimeSpan timeSpan ) const;
CTimeSpan operator -( CTime time ) const;
b和c都是CTime,所以它调用第三个-(CTimeSpan operator -( CTime time ) const;),所以它的返回值是CTimeSpan
a是CTime,第二个参数是CTimeSpan,所以调用第二个-(CTime operator -( CTimeSpan timeSpan ) const;)
b和c的时间差大约是两年多,你选择的时间减它,当然少了两了两年多
这是一个Bug
void CDlgDlg::OnButton1()
{
// CTime a;
CString t;
CMonthCalCtrl *mCtrl=(CMonthCalCtrl*)GetDlgItem(IDC_MONTHCALENDAR1);
// mCtrl->GetCurSel(a);
SYSTEMTIME sysTime;
::SendMessage(mCtrl->GetSafeHwnd(), MCM_GETCURSEL, NULL, (L