【MFC基础】13s时间控件DateTime Picker

本文介绍了如何在MFC中使用DateTimePicker控件获取和设置时间,包括使用CTime和COleDateTime进行日期时间处理,以及如何格式化日期字符串。此外,还讲解了如何检查控件的选中状态以及初始化控件的方法。
摘要由CSDN通过智能技术生成

往MFC界面上拖一个Date Time Picker控件,然后选中,右键添加一个变量 比如 m_dtCtrl

1、获得该控件的时间

CTime m_date;  			//别看名字以为它只有时间,实际上它可以同时获得日期和时间信息
m_dtCtrl.GetTime(m_date);//把控件里面的时间都获取到了m_date这个结构里面。需要哪些数据从m_date中取就可以了。

不过CTime只能表示1970-2037年的数据,要表示更长时间段,可以用COleDateTime,表示1900以后几千年的数据。

2、获取当前时间

方法一:

CTime time ;
time = CTime::GetCurrentTime();//是一个静态方法,静态方法可以直接类名::方法名调用。

将上述控件设置为当前时间:

m_dtCtrl.SetTime(time);

日期格式化:

CString strDate = time.Format(L"%Y-%m-%d");    //获取到的为日期 如:2010-03-05

方法二:

COleDateTime dateTest;
dateTest = COleDateTime::GetCurrentTime(); //是一个静态方法,静态方法可以直接类名::方法名调用。

将上述控件设置为当前时间:

m_dtCtrl.SetTime(dateTest);

日期格式化同上。

4.如果有不需要显示日期的需求,可以在该控件属性窗口中,设置ShowNone为TRUE.
当不想显示日期的时候就写

m_dtCtrl.SetTime();

就可以达到目的了。

5.如果想查看当前控件checkbox情况,可以

 m_dtCtrl.GetStatus()==0

的时候是选中的,其他的是不选中和错误的情况
error = -1 ,valid = 0,invalid = 1, // Invalid date (out of range, etc.)null = 2, // Literally has no value

enum DateTimeStatus
{
	error = -1,
	valid = 0,
	invalid = 1, // Invalid date (out of range, etc.)
	null = 2, // Literally has no value
};

初始化控件:

CString m_strBirth = L"2015-04-18";
//解析生日字符串 然后初始化控件
int iIndex = m_strBirth.Find('-');
int iReverseIndex = m_strBirth.ReverseFind('-');

CString strYear = m_strBirth.Left(iIndex);
CString strDay = m_strBirth.Right(m_strBirth.GetLength() - iReverseIndex -1);
CString strMonth = m_strBirth.Mid(iIndex+1,(iReverseIndex-iIndex-1));

COleDateTime time(_ttoi(strYear),_ttoi(strMonth),_ttoi(strDay),0,0,0);
m_DateCtrl.SetTime(time);//    CDateTimeCtrl m_DateCtrl;
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperJun12345

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值