请问CDateTimeCtrl控件的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问CDateTimeCtrl控件的使用相关的知识,希望对你有一定的参考价值。
小弟的数据库访问程序设计了日期和时间的控件,
请问怎样提取日期和时间控件的相应时间数据,
用于录入到数据库,能直接录入吗,还是要转换为CString型。
CTime有GetYear、GetMonth、GetDay、GetHour、GetMinute、GetSecond
等函数,返回值都是int型的。 参考技术A 头文件<ctime>中定义一个日期时间的结构:
struct tm
int tm_sec; //秒
int tm_min; //分
int tm_hour; //时
int tm_mday; //日
int tm_mon; //月
int tm_year; //年,实际放的是与1970年的差,如1990年为20
int tm_wday; //星期
int tm_yday; //一年中的第几天
int tm_isdst; //是否夏时制
;
函数 time_t time(time_t *tp)是提取当前时间,time_t即长整型,代表从1970年1月1日00:00:00开始计算的秒数(格林尼治时间),放在首地址为tp的单元内。
函数 tm *localtime(const time_t *tp) 将tp地址单元中的时间转换为日期时间结构的当地时间;(函数 tm *gmtime(const time_t *tp)转换为日期时间结构的格林尼治时间;)
函数 char *asctime(tm *tb)将tb地址单元中的tm结构的日期时间转换为字符串(供显示),它有固有格式,如:
Sun Sep 16 01:03:52 1973
利用以上资源,重新设计一个日期时间类(DataTime),显示时重取显示时刻的时间并显示出来:
看一下下面的程序,你会了解更好:
#include<iostream>
#include<ctime>
using namespace std;
class datatime
tm *timedata;
long allsecond;
char *tmp;
public:
datatime()
time(&allsecond);
timedata=localtime(&allsecond);
tmp=asctime(timedata);
cout<<tmp<<endl;
void gettime()
allsecond=time(NULL);//time有两种用法
timedata=localtime(&allsecond);
tmp=asctime(timedata);
cout<<tmp<<endl;
;
int main()
char ch;
datatime dt;
cout<<"需要知道现在的日期和时间吗?(Y或N)"<<endl;
cin>>ch;
if(ch=='y'||'Y') dt.gettime();
return 0;
以上是关于请问CDateTimeCtrl控件的使用的主要内容,如果未能解决你的问题,请参考以下文章
MFC 把CString格式的时间添加到时间控件(CDateTimeCtrl)中去