VC控件DateTimePicker使用方法及其相关
获取当前的日期、时间并格式化输出
框1,框2,框3:Static Text控件,修改ID
m_strDate:关联框1,CString数据类型(Value类别)
m_strTime:关联框2,CString数据类型(Value类别)
m_strDateTime:关联框3,CString数据类型(Value类别)
获取按钮消息响应函数:
void CTest17GetTimeDlg::OnGetTime()
{
// TODO: 在此添加控件通知处理程序代码
//UpdateData(true);
CTime m_time;
m_time=CTime::GetCurrentTime(); //获取当前时间日期
m_strDate=m_time.Format(_T("%x")); //格式化日期
m_strTime=m_time.Format(_T("%X")); //格式化时间
m_strDateTime=m_time.Format(_T("%Y-%m-%d %H:%M:%S %A")); //格式化日期时间
UpdateData(false);
}
注:
CTime类表示的是绝对时间,即基于格林威治平均时间(GMT);CTimeSpan则表示的是时间间隔。
GetCurrentTime函数可以获取当前的日期、时间;Format函数则可以将时间、日期格式化。
Format函数的格式符号及其意义:
%a: 简写的星期名,例如Sat代表Saturday
%A: 全写星期(英文),如Friday
%b: 简写的月名,例如Mar代表March
%B: 月份(全写英文),如October
%c: 月/日/年 时:分:秒,如1/3/2012 21:19:11
%d: 月中的天数,值为01~31
%H: 24小时格式的小时数,值为00~23
%I: 通常的12小时格式的小时数,值为01~12
%j: 一年当中的第几天,值为001~336
%m: 月数,值为01~12
%M: 分钟数,值为00~59
%p: 由12小时格式的时钟指示的am/pm(上午/下午)
%S: 秒数,值为00~59
%U: 年中的周数,值为00~53,以周日为一周的第一天
%w: 周中的日期数,值为0~6,其中0为周日
%W: 年中的周数,值为00~53,以周一为一周的第一天
%x: 月/日/年,%c的前半段
%X: 时/分/秒,%c的后半段
%y: 不带年代前缀的年数,值为00~99
%Y: 年份(带世纪,如2006)
%z: 简写的时区名称
%Z: 时区名称的全称,如果时区未知,此字符为空,如“中国标准时间”
==================================================================
来源:http://www.cnblogs.com/52yixin/articles/2111299.html
使用DateTimePicker控件一般是获 取其时间替代手工输入带来的不便,而DateTimePicker控件既可以获取日期(2010-03-05)也可以获取时间(16:27:33),要获 取日期只需要更改控件属性的格式为长日期或短日期,要获取时间则将格式更改为时间即可!
在添加控件变量时,选择其变量类型为CDateTimeCtrl(类如m_DateCtrl);在程序中定义CTime对象用来保存获取的时间,然后可以将其转换为CString类型;具体实现:
- CTime time;
- m_DateCtrl.GetTime(time);
- CString strTime=time.Format("%Y-%m-%d") //获取到的为日期 如:2010-03-05
- CTime time;
- m_DateCtrl.GetTime(time);
- CString strTime=time.Format("%H:%M:%S") //获取到的为时间 如:16:27:33
CTime time;m_DateCtrl.GetTime(time);CString strTime=time.Format("%Y-%m-%d") //获取到的为日期 如:2010-03-05CTime time;m_DateCtrl.GetTime(time);CString strTime=time.Format("%H:%M:%S") //获取到的为时间 如:16:27:33
VC2005中DateTimePicker控件的使用
- 1 显示年月日时分秒的当前时间
- CDateTimeCtrl m_DateItmeCtrl_Time;
- m_DateItmeCtrl_Time.SetFormat(_T("yyyy-MM-dd HH:mm:ss"));
- CTime TimeTemp=TimeTemp.GetCurrentTime();
- m_DateItmeCtrl_Time.SetTime(&TimeTemp);
- 其中HH表示24小时制,hh表示12小时制
- 2 如果声明一个控件类型为CTime的变量,那么时间将显示1970-01-01 08:00:00.
- 3将DateTimePicker控件声明变量类型为COleDateTime
- COleDateTime转CString
- CString strTime;
- COleDateTime dtTime;
- strTime =dtTime.Format(_T("%Y-%m-%d %H:%M:%S"));
1 显示年月日时分秒的当前时间CDateTimeCtrl m_DateItmeCtrl_Time;m_DateItmeCtrl_Time.SetFormat(_T("yyyy-MM-dd HH:mm:ss"));CTime TimeTemp=TimeTemp.GetCurrentTime();m_DateItmeCtrl_Time.SetTime(&TimeTemp);其中HH表示24小时制,hh表示12小时制2 如果声明一个控件类型为CTime的变量,那么时间将显示1970-01-01 08:00:00.3将DateTimePicker控件声明变量类型为COleDateTimeCOleDateTime转CStringCString strTime;COleDateTime dtTime; 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;
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时 参数需要为指针
- m_ctrlMachineDeliveryDate.SetTime(&CTime::GetCurrentTime()); //将控件显示当前日期
- m_ctrlMachineInstallDate.SetTime(&CTime::GetCurrentTime());
- CTime tDeliveryDate;
- m_ctrlMachineDeliveryDate.GetTime(tDeliveryDate); //获取发货日期
- pMachineInfoSet->m_MACHINE_DELIVERYDATE = tDeliveryDate;
- CTime tDeliveryDate;
- tDeliveryDate = pMachineInfoSet->m_MACHINE_DELIVERYDATE; //获取记录中的日期
- m_ctrlMachineDeliveryDate.SetTime(&tDeliveryDate); //将记录中的日期赋值到DateTime控件中显示
m_ctrlMachineDeliveryDate.SetTime(&CTime::GetCurrentTime()); //将控件显示当前日期m_ctrlMachineInstallDate.SetTime(&CTime::GetCurrentTime());CTime tDeliveryDate;m_ctrlMachineDeliveryDate.GetTime(tDeliveryDate); //获取发货日期pMachineInfoSet->m_MACHINE_DELIVERYDATE = tDeliveryDate; CTime tDeliveryDate;tDeliveryDate = pMachineInfoSet->m_MACHINE_DELIVERYDATE; //获取记录中的日期m_ctrlMachineDeliveryDate.SetTime(&tDeliveryDate); //将记录中的日期赋值到DateTime控件中显示
// 设定时间日期控件允许选择的范围
- CTime tCurrentTime= CTime::GetCurrentTime();
- CTimeSpan timespanOneMonth(30,0,0,0); //这里设置为当前日期推后30天
- CTime tEndTime = tCurrentTime +timespanOneMonth;
- m_ctrlADTipsDaysDate.SetRange(&tCurrentTime,&tEndTime);
- /*
- m_dtcTm:这个是DATE TIME PICKER控件变量
- CTime begin_tm(1970,1,1,8,0,0),end_tm(2038,1,19,3,14,7);
- m_dtcTm.SetRange(&begin_tm,&end_tm);
- m_tmClock=CTime::GetCurrentTime();//设置初始值为当前时间
- m_dtcTm.SetTime(&m_tmClock);
- //m_dtcTm.SetFormat("yyyy-MM-dd HH'时'mm'分'"); //设置字符串格式
- m_dtcTm.SetFormat("yyyy-MM-dd HH:mm:ss");
- */
CTime tCurrentTime= CTime::GetCurrentTime();CTimeSpan timespanOneMonth(30,0,0,0); //这里设置为当前日期推后30天CTime tEndTime = tCurrentTime +timespanOneMonth;m_ctrlADTipsDaysDate.SetRange(&tCurrentTime,&tEndTime);/*m_dtcTm:这个是DATE TIME PICKER控件变量CTime begin_tm(1970,1,1,8,0,0),end_tm(2038,1,19,3,14,7);m_dtcTm.SetRange(&begin_tm,&end_tm);m_tmClock=CTime::GetCurrentTime();//设置初始值为当前时间m_dtcTm.SetTime(&m_tmClock); //m_dtcTm.SetFormat("yyyy-MM-dd HH'时'mm'分'"); //设置字符串格式m_dtcTm.SetFormat("yyyy-MM-dd HH:mm:ss");*/
===================================CString 与 CTime 的相互转化=============================================
C++中,CTime 与 CString转换<转>
CTime m_StartTime1 = CTime::GetCurrentTime();
CString csStartTime = m_StartTime1.Format( "%Y%m%d%H%M%S" );
一.将CString转为CTime的几种方法
CString timestr = "2000年04月05日";
int a,b,c ;
sscanf(timestr.GetBuffer(timestr.GetLength()),"%d年%d月%d日",&a,&b,&c);
CTime time(a,b,c,0,0,0);
--------or - ---------------------
CString s("2001-8-29 19:06:23");
int nYear, nMonth, nDate, nHour, nMin, nSec;
sscanf(s, "%d-%d-%d %d:%d:%d", &nYear, &nMonth, &nDate, &nHour, &nMin, &nSec);
CTime t(nYear, nMonth, nDate, nHour, nMin, nSec);
---- or ------------------------
CString timestr = "2000年04月05日";
int year,month,day;
BYTE tt[5];
//get year
memset(tt, 0, sizeof(tt));
tt[0] = timestr[0];
tt[1] = timestr[1];
tt[2] = timestr[2];
tt[3] = timestr[3];
year= atoi((char *)tt);
//get month
memset(tt, 0, sizeof(tt));
tt[0] = timestr[6];
tt[1] = timestr[7];
month = atoi((char *)tt);
//get day
memset(tt, 0, sizeof(tt));
tt[0] = timestr[10];
tt[1] = timestr[11];
CTime time(year,month,day,0,0,0);
从上面来看,很明显使用sscanf()函数的优势.
二.将CTIme转换为CString的方法:
CTime tmSCan = CTime::GetCurrentTime();
CString szTime = tmScan.Format("'%Y-%m-%d %H:%M:%S'");
这样得到的日期时间字符串就是以"2006-11-27 23:30:59"的格式.这是不是很方便呢?
//取得CTime中的日期
CString cstrDate = tmScan.Format("%Y-%m-%d");
//取得CTime中的时间
CString cstrTime = tmScan.Format("%H:%M-%S");
sprintf还有个不错的表妹:strftime,专门用于格式化时间字符串的,用法跟她表哥很像,也是一大堆格式控制符,只是毕竟小姑娘家心细,她还要调用者指定缓冲区的最大长度,可能是为了在出现问题时可以推卸责任吧。这里举个例子:
更多更好的sprintf()函数说明参考:《spirntf,你知道多少?》
http://blog.csdn.net/steedhorse/archive/2005/03/25/330206.aspx
time_t t = time(0);
//产生"YYYY-MM-DD hh:mm:ss"格式的字符串。
char s[32];
strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", localtime(&t));
sprintf在MFC中也能找到他的知音:CString::Format,strftime在MFC中自然也有她的同道:CTime::Format,这一对由于从面向对象哪里得到了赞助,用以写出的代码更觉优雅
VC控件DateTimePicker使用方法及其相关相关推荐
- 编写ActiveX控件及其打包方法
1.ActiveX控件概述 ActiveX控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中.在Windows操作系统以OCX结尾的文件,OCX代表"对象链接 ...
- 【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )
文章目录 一. 代码生成控件 1. 创建设置项目 ( 1 ) 创建项目 ( ① 选择 Create a new Xcode project | ② 创建 Single View Application ...
- Win32页上的所有控件属性与方法
Win32页上的所有控件.该页控件是在32位Win系统中的一些基本控件,如果你选择开发CLX程序,则在控件面板上不会显示该页 TTabControl 属性 DisplayRect:只定该控件客户区的一 ...
- listview控件在php的使用方法,Android_Android编程之控件ListView使用方法,本文实例讲述了Android编程之控 - phpStudy...
Android编程之控件ListView使用方法 本文实例讲述了Android编程之控件ListView使用方法.分享给大家供大家参考.具体分析如下: 控件ListView是一个重要的控件,可以被用作 ...
- C#中Windows Media Player控件使用实例|方法
Windows Media Player控件Windows Media Player是一种媒体播放器,可以播放当前最流行的音频.视频文件和大多数混合型的多媒体文件.为了便于程序的开发,Visual S ...
- 【语言-c#】C#控件DateTimePicker 修改日历字体大小、颜色
一.类似提问 c#控件 DateTimePicker如何把下拉日历变大 ,我试过设置CalendarFont,但是无效 在win7下用CalendarFont设置dateTimepicker任何字体效 ...
- PPT中WMP播放器控件的使用方法
Windows Media Player是个十分好用的播放器,它支持多个格式视频.音频文件的播放,在PPT 2003中使用的频率非常的高. 本文以PPT 2003为例,讲解一下PPT 2003中WMP ...
- 使用()控件的saveas方法可以将上传文件保存到服务器.,NET开发-FileUpload上传控件HasFile、FileName、SaveAs()的使用...
.NET开发-FileUpload控件 1. FileUpload控件概述 在ASP.NET WebForm的标准控件中,可以使用FileUpload控件实现客户端文件(任意类型的文件)的上传,上传后 ...
- VC控件MSComm编写串口通信程序
转载:http://blog.csdn.net/liangzhao_jay/article/details/45647229 在众多网友的支持下,串口调试助手从2001年5月21日发布至今,短短一个月 ...
最新文章
- JAVA的instanceOf什么时候用
- c++ lambda函数_C++ Lambda表达式
- [基础|理论|实验]linux下的文件读写
- 缓存穿透、缓存击穿、缓存雪崩及其解决方案
- iOS程序启动过程笔记
- ieee文章作者对不齐怎么办呢?
- 关于文件描述符的问题的解决
- SpringBoot2.1.5(23)---SpringBoot 开发WEB应用
- mysql json类型存储list_list存储json字符串
- Router_Cloud
- codeforces 414C C. Mashmokh and Reverse Operation(归并排序求逆序对)
- 【C语言】VSCode配置C语言开发环境(详细图文)
- document 常用事件
- VS找到w3wp.exe 附加到23wp.exe进行debug程序调试
- Ubuntu RTL8821ce网卡驱动
- js打怪升级之路三 点出满天小星星
- Mathmatica9 注册不了
- Microsoft Office 2016 VOL版下载
- 针对学校出现猪流感而做的一个简单的小软件(更新版)
- C# vs Java —— 剑客vs刀客 Java vs .NET之飘逸的Java
热门文章
- php输出一百个hello,如何使用 PHP 输出 hello world?
- oracle简写sql,Oracle通过sqlplus编辑sql命令
- fstab自动挂载_玩客云刷机系统之armbian挂载U盘增加空间
- 2020-05-16 为什么PID中的P或者说状态反馈中的K不能无限增大
- jq添加新节点赋予class属性并获取该对象
- CSS3特效之转化(transform)和过渡(transition)
- 【django之权限组件】
- AJAX ASP/PHP 请求实例
- SuperSocket 1.5 Documentation译文 ------- 目录索引
- 关于spring mybateis 定义resultType=java.util.HashMap