现在的位置: 首页 > 综合 > 正文

VC控件DateTimePicker使用方法

2018年05月28日 ⁄ 综合 ⁄ 共 2049字 ⁄ 字号 评论关闭

使用DateTimePicker控件一般是获 取其时间替代手工输入带来的不便,而DateTimePicker控件既可以获取日期(2013-02-25)也可以获取时间(16:27:33),要获 取日期只需要更改控件属性的格式为长日期或短日期,要获取时间则将格式更改为时间即可!

         在添加控件变量时,选择其变量类型为CDateTimeCtrl(类如m_DateCtrl);在程序中定义CTime对象用来保存获取的时间,然后可以将其转换为CString类型;具体实现:

复制代码
1        CTime time;
2        m_DateCtrl.GetTime(time);
3        CString strTime=time.Format("%Y-%m-%d")     //获取到的为日期 如:2013-03-25
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"));  
复制代码


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控件中显示
复制代码

 // 设定时间日期控件允许选择的范围

复制代码
 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  */
复制代码

抱歉!评论已关闭.