MFC Date Time Picker的使用

本文详细介绍了如何在MFC界面上利用DateTimePicker控件进行日期时间的输入、获取与显示,包括如何将控件设置为当前时间、格式化日期以及检查控件状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

2.获得该控件的时间

CTime m_date;  //别看名字以为它只有时间,实际上它可以同时获得日期和时间信息

m_dtCtrl.GetTime(m_date);把控件里面的时间都获取到了m_date这个结构里面。需要哪些数据从m_date中取就可以了。

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

3.获取当前时间

方法一:

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;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值