使用DateTimePicker控件一般是獲 取其時間替代手工輸入帶來的不便,而DateTimePicker控件既可以獲取日期(2010-03-05)也可以獲取時間(16:27:33),要獲 取日期只需要更改控件屬性的格式為長日期或短日期,要獲取時間則將格式更改為時間即可!
在添加控件變量時,選擇其變量類型為CDateTimeCtrl(類如m_DateCtrl);在程序中定義CTime對象用來保存獲取的時間,然后可以將其轉換為CString類型;具體實現:
1 CTime time;
2 m_DateCtrl.GetTime(time);
3 CString strTime=time.Format("%Y-%m-%d") //獲取到的為日期 如:2010-03-05
4
5 CTime time;
6 m_DateCtrl.GetTime(time);
7 CString strTime=time.Format("%H:%M:%S") //獲取到的為時間 如:16:27:33
VC2005中DateTimePicker控件的使用
1 1 顯示年月日時分秒的當前時間
2 CDateTimeCtrl m_DateItmeCtrl_Time;
3 m_DateItmeCtrl_Time.SetFormat(_T("yyyy-MM-dd HH:mm:ss"));
4 CTime TimeTemp=TimeTemp.GetCurrentTime();
5 m_DateItmeCtrl_Time.SetTime(&TimeTemp);
6
7 其中HH表示24小時制,hh表示12小時制
8 2 如果聲明一個控件類型為CTime的變量,那么時間將顯示1970-01-01 08:00:00.
9
10 3將DateTimePicker控件聲明變量類型為COleDateTime
11 COleDateTime轉CString
12 CString strTime;
13 COleDateTime dtTime;
14 strTime =dtTime.Format(_T("%Y-%m-%d %H:%M:%S"));
4 CString轉COleDateTime(因為VS2005時間日期控件關聯的Value變量默認是COleDateTime類型)
1 CString strTime =_T("2009-08-11 11:22:33");
2 COleVariant VariantTime;
3 VariantTime = strTime;
4 VariantTime.ChangeType(VT_DATE);
5 COleDateTime DataTime = VariantTime;
SetTime時 參數需要為指針
1 m_ctrlMachineDeliveryDate.SetTime(&CTime::GetCurrentTime()); //將控件顯示當前日期
2 m_ctrlMachineInstallDate.SetTime(&CTime::GetCurrentTime());
3
4
5
6 CTime tDeliveryDate;
7 m_ctrlMachineDeliveryDate.GetTime(tDeliveryDate); //獲取發貨日期
8 pMachineInfoSet->m_MACHINE_DELIVERYDATE = tDeliveryDate;
9
10
11
12 CTime tDeliveryDate;
13 tDeliveryDate = pMachineInfoSet->m_MACHINE_DELIVERYDATE; //獲取記錄中的日期
14 m_ctrlMachineDeliveryDate.SetTime(&tDeliveryDate); //將記錄中的日期賦值到DateTime控件中顯示
例子:
string strTime,strYear,strMonth,strDay;
strTime = strBirthday.substr(0,10);
strYear = strTime.substr(0,4);
strMonth = strTime.substr(5,2);
strDay = strTime.substr(8,2);
CTime t(atoi(strYear.c_str()),atoi(strMonth.c_str()), atoi(strDay.c_str()),0,0,0);
m_DateBorn.SetTime(&t);
// 設定時間日期控件允許選擇的范圍
1 CTime tCurrentTime= CTime::GetCurrentTime();
2 CTimeSpan timespanOneMonth(30,0,0,0); //這里設置為當前日期推后30天
3 CTime tEndTime = tCurrentTime +timespanOneMonth;
4 m_ctrlADTipsDaysDate.SetRange(&tCurrentTime,&tEndTime);
5 /*
6 m_dtcTm:這個是DATE TIME PICKER控件變量
7 CTime begin_tm(1970,1,1,8,0,0),end_tm(2038,1,19,3,14,7);
8 m_dtcTm.SetRange(&begin_tm,&end_tm);
9 m_tmClock=CTime::GetCurrentTime();//設置初始值為當前時間
10 m_dtcTm.SetTime(&m_tmClock);
11 //m_dtcTm.SetFormat("yyyy-MM-dd HH'時'mm'分'"); //設置字符串格式
12 m_dtcTm.SetFormat("yyyy-MM-dd HH:mm:ss");
13 */