vc++日历控件日期显示不正确 本帖最后由 qq496683952 于 2009-08-03 11:11:19 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MSDN上查看 CMonthCalCtrl 有详细的说明和例子 VC好像不支持连等sysTime.wHour = sysTime.wMinute = sysTime.wSecond = sysTime.wMilliseconds = 0; 还有你用m_CtrlMonthCal.GetCurSel得到了日期和时间为什么还要用CTime在定义一下呢,应该可以直接使用systemtime了吧 sysTime.wHour = sysTime.wMinute = sysTime.wSecond = sysTime.wMilliseconds = 0; 时分秒不都被你设成0了吗 是为了使用Format.sysTime 无法直接调用Format。vc++是支持sysTime.wHour = sysTime.wMinute = sysTime.wSecond = sysTime.wMilliseconds = 0;的。 刚用debug跟踪调试了下。发下了问题。当选择今天的日期的时候sysTime的数据时正确的日期及时间。但是选择其他日期时,sysTime的数据出现了错误。具体如下:我若选择2009-08-02sysTime各个参数的数据如下:wYear 2009WMouth 8wDayofweek 0wDay 2wHour 18464wMinute 24397wSecond 64328wMilliseconds 18当数据传送给l_time后,数据为1317140948l_time在传送给strTime时候就出现了错误数据装换后就变成了2011-09-28 00:29:28所以问题应该在数据获取时候的时分秒的获取上面。各位帮帮忙,看如何修改才能获得正确的时分秒(我的程序的是想获得当前的时分秒),谢谢了。 解决方法如下:SYSTEMTIME sysTime; m_CtrlMonthCal.GetCurSel(&sysTime); sysTime.wHour = sysTime.wMinute = sysTime.wSecond = sysTime.wMilliseconds = 0; CTime l_time(sysTime); CString strTime = l_time.Format("%Y-%m-%d %H:%M:%S"); SetDlgItemText(IDC_TIME_EDIT, strTime); UpdateData(FALSE); 这样修改后最后的数据时2009-08-02 00:00:00时分秒有用户手动设置。当然有更好的方法--自己写一个日历控件,中间加入一个时钟就能解决时分秒选择的问题。这种解决方式留作下次软件更新使用。呵呵,这次时间有点紧。就此结贴。 我刚也用过这个控件,不过我的sysTime用的类型是CTime,没遇到你的问题。 好好学习 *****************************************************************************欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/ 又试了几次,还是没问题不管是Month Calendar控件 还是 Date time Pocker 创建CEdit 扩展类,在这个扩展类里面如何去掉边框? @当新的数据进入剪切板时会有什么消息??? 为什么下面代码里有消息定义但是没消息映射啊!急求 怎么同步数据库中的数据访问? 关于文件同时读写的问题? 晕死:我的g_lpHTMLDocument2……,Access Violation,高手改 欢迎加入QQ群(5762461) VC调试器高级应用----高级断点篇 ATL控件中如果使用其他OCX控件? 请问:CMap是啥类?如何用???? Dll 无法调试 VS2005 ,急!!!!!!!!!! 求教:如何将指定的已经画图的那个区域的图存入内存
还有你用m_CtrlMonthCal.GetCurSel得到了日期和时间
为什么还要用CTime在定义一下呢,应该可以直接使用systemtime了吧
sysTime 无法直接调用Format。
vc++是支持sysTime.wHour = sysTime.wMinute = sysTime.wSecond = sysTime.wMilliseconds = 0;的。
当选择今天的日期的时候sysTime的数据时正确的日期及时间。
但是选择其他日期时,sysTime的数据出现了错误。
具体如下:
我若选择2009-08-02
sysTime各个参数的数据如下:
wYear 2009
WMouth 8
wDayofweek 0
wDay 2
wHour 18464
wMinute 24397
wSecond 64328
wMilliseconds 18
当数据传送给l_time后,数据为1317140948
l_time在传送给strTime时候就出现了错误
数据装换后就变成了2011-09-28 00:29:28
所以问题应该在数据获取时候的时分秒的获取上面。
各位帮帮忙,看如何修改才能获得正确的时分秒(我的程序的是想获得当前的时分秒),谢谢了。
SYSTEMTIME sysTime;
m_CtrlMonthCal.GetCurSel(&sysTime);
sysTime.wHour = sysTime.wMinute = sysTime.wSecond = sysTime.wMilliseconds = 0;
CTime l_time(sysTime);
CString strTime = l_time.Format("%Y-%m-%d %H:%M:%S");
SetDlgItemText(IDC_TIME_EDIT, strTime);
UpdateData(FALSE);
这样修改后最后的数据时2009-08-02 00:00:00
时分秒有用户手动设置。
当然有更好的方法--自己写一个日历控件,中间加入一个时钟就能解决时分秒选择的问题。
这种解决方式留作下次软件更新使用。呵呵,这次时间有点紧。
就此结贴。
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
不管是Month Calendar控件 还是 Date time Pocker