您的位置:首页 > 其它

VC中获得当前日期和时间

2014-11-27 21:59 351 查看
获得当前日期和时间

CTime tm=CTime::GetCurrentTime();

CString str=tm.Format("%Y-%m-%d");

在VC中,我们可以借助CTime时间类,获取系统当前日期,具体使用方法如下:

CTime t = CTime::GetCurrentTime(); //获取系统日期

int d=t.GetDay(); //获得几号

int y=t.GetYear(); //获取年份

int m=t.GetMonth(); //获取当前月份

int h=t.GetHour(); //获取当前为几时

int mm=t.GetMinute(); //获取分钟

int s=t.GetSecond(); //获取秒

int w=t.GetDayOfWeek(); //获取星期几,注意1为星期天,7为星期六

如果想计算两段时间的差值,可以使用CTimeSpan类,具体使用方法如下:



CTime t1( 1999, 3, 19, 22, 15, 0 );

CTime t = CTime::GetCurrentTime();

CTimeSpan span=t-t1; //计算当前系统时间与时间t1的间隔

int iDay=span.GetDays(); //获取这段时间间隔共有多少天

int iHour=span.GetTotalHours(); //获取总共有多少小时

int iMin=span.GetTotalMinutes();//获取总共有多少分钟

int iSec=span.GetTotalSeconds();//获取总共有多少秒

设置计时器

定义TIMER ID

#define TIMERID_JISUANFANGSHI 2

在适当的地方设置时钟,需要开始其作用的地方;

SetTimer(TIMERID_JISUANFANGSHI,200,NULL);

在不需要的时候销毁掉时钟

KillTimer(TIMERID_JISUANFANGSHI);

消息映射

void CJisuan::OnTimer(UINT nIDEvent)

{}

VC++中其实还是通过调用它自带的CTime类来完成的获取当前系统时间的,我们做一个小程序来了解这个过程吧!对话框里只有两个显示框和两个按钮,点下按钮显示当前时间。就这么一个小程序。
(1)建立应用程序外壳
创建一个新的AppWizard项目,命名为shiyan,选择Dialog
based;其他都选用默认属性,单击Finish完成生成应用程序的步骤。进入对话框界面以后,按下图所示布置显示框和功能按钮。





(2)设置参数
其中上面的显示文本框设为CString型,命名为m_show,ID号为IDC_show。
下面的显示文本框设为CString型,命名为m_show1,ID号为IDC_show1。
(3)编译程序
start键程序:
void CDate1Dlg::Onstart()

{

//count=0;

SetTimer(1,1000,NULL);

// TODO: Add your control notification handler code here

}

stop键程序:
void CDate1Dlg::Onstop()

{

KillTimer(1);

// TODO: Add your control notification handler code here

}

(4)增加计时器控件
View -> ClassWizard -> MessageMaps -> CUse progressDlg,加入WM_TIMER函数,编辑程序:
void CDate1Dlg::OnTimer(UINT nIDEvent)

{

if(nIDEvent==1)

{

// count++;

UpdateData(1);

CTime mtime=CTime::GetCurrentTime();//获取当前时间

char i;

CString w;

i=char (mtime.GetDayOfWeek());

//获取当前时间的天数是这个星期的第几天,这里要注意了,系统上默认的一个星期的第一天是星期日,最后一天是周六,大家千万不要搞错了。我也是试了才知道的。

switch(i)//将数字状换成字符就不会出现星期7这种情况了

{

case 2:

{w="一";break;}

case 3:

{w="二";break;}

case 4:

{w="三";break;}

case 5:

{w="四";break;}

case 6:

{w="五";break;}

case 7:

{w="六";break;}

case 1:

{w="日";break;}

}

int a,b,c,d,e,f;

a=int(mtime.GetSecond())/10;//获取当前时间的秒数

b=int(mtime.GetSecond())%10;

c=int(mtime.GetMinute())/10;//获取当前时间的分数

d=int(mtime.GetMinute())%10;

e=int(mtime.GetHour())/10;//获取当前时间的小时数

f=int(mtime.GetHour())%10;

m_show.Format("今天是%d年%d月%d日 星期%s ",mtime.GetYear(),mtime.GetMonth(),mtime.GetDay(),w);

m_show1.Format("现在时间是 %d%d:%d%d:%d%d",e,f,c,d,a,b);

}



UpdateData(0);

// TODO: Add your message handler code here and/or call default

CDialog::OnTimer(nIDEvent);

}

之后编译运行一下就行了,效果见下图:





编写了另外一个简单的获取时间方式:

[cpp]
view plaincopyprint?

void CMy1Dlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default if (nIDEvent==1) { CTime mtime=CTime::GetCurrentTime(); m_strtime=mtime.Format("今天是%Y年%m月%d日 %X"); //m_strtime是和编辑框关联的string类型变量 UpdateData(FALSE); } CDialog::OnTimer(nIDEvent); } void CMy1Dlg::OnButton1() { // TODO: Add your control notification handler code here SetTimer(1,1000,NULL); } void CMy1Dlg::OnButton2() { // TODO: Add your control notification handler code here KillTimer(1); }
void CMy1Dlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if (nIDEvent==1)
{
CTime mtime=CTime::GetCurrentTime();
m_strtime=mtime.Format("今天是%Y年%m月%d日 %X"); //m_strtime是和编辑框关联的string类型变量
UpdateData(FALSE);

}
CDialog::OnTimer(nIDEvent);
}

void CMy1Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
SetTimer(1,1000,NULL);
}

void CMy1Dlg::OnButton2()
{
// TODO: Add your control notification handler code here
KillTimer(1);
}




/article/9369285.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: