您好,欢迎访问三七文档
//获取系统日期时间CTimetime=CTime::GetCurrentTime();FileNameString=time.Format(%Y%m%d%H%M%S);CStringPathString=..\\;FileNameString.Insert(0,PathString);PathString=.dat;PathString.Insert(0,FileNameString);FileNameString=PathString;VC++中其实还是通过调用它自带的CTime类来完成的获取当前系统时间的,我们做一个小程序来了解这个过程吧!对话框里只有两个显示框和两个按钮,点下按钮显示当前时间。就这么一个小程序。(1)建立应用程序外壳创建一个新的AppWizard项目,命名为shiyan,选择Dialogbased;其他都选用默认属性,单击Finish完成生成应用程序的步骤。进入对话框界面以后,按下图所示布置显示框和功能按钮。(2)设置参数其中上面的显示文本框设为CString型,命名为m_show,ID号为IDC_show。下面的显示文本框设为CString型,命名为m_show1,ID号为IDC_show1。(3)编译程序start键程序:voidCDate1Dlg::Onstart(){//count=0;SetTimer(1,1000,NULL);//TODO:Addyourcontrolnotificationhandlercodehere}stop键程序:voidCDate1Dlg::Onstop(){KillTimer(1);//TODO:Addyourcontrolnotificationhandlercodehere}(4)增加计时器控件View-ClassWizard-MessageMaps-CUseprogressDlg,加入WM_TIMER函数,编辑程序:voidCDate1Dlg::OnTimer(UINTnIDEvent){if(nIDEvent==1){//count++;UpdateData(1);mtime=CTime::GetCurrentTime();//获取当前时间chari;CStringw;i=char(mtime.GetDayOfWeek());//获取当前时间的天数是这个星期的第几天,这里要注意了,系统上默认的一个星期的第一天是星期日,最后一天是周六,大家千万不要搞错了。我也是试了才知道的。switch(i)//将数字状换成字符就不会出现星期7这种情况了{case2:{w=一;break;}case3:{w=二;break;}case4:{w=三;break;}case5:{w=四;break;}case6:{w=五;break;}case7:{w=六;break;}case1:{w=日;break;}}inta,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:Addyourmessagehandlercodehereand/orcalldefaultCDialog::OnTimer(nIDEvent);}之后编译运行一下就行了,效果见下图:一、使用MFC可以用以下代码得到:CTimetime=CTime::GetCurrentTime();///构造CTime对象intm_nYear=time.GetYear();///年intm_nMonth=time.GetMonth();///月intm_nDay=time.GetDay();///日intm_nHour=time.GetHour();///小时intm_nMinute=time.GetMinute();///分钟intm_nSecond=time.GetSecond();///秒//CTimetime=CTime::GetCurrentTime();//CStringstrTime=time.Format(%Y-%m-%d%H:%M:%S);//Format(%I:%M:%S%p,%A,%B%d,%Y)我们还可以用CTime::Format函数将CTime对象转换为字符串对象例如:CStringm_strTime=time.Format(%Y-%m-%d%H:%M:%S);运行结果:m_strTime为2001-8-112:11:05函数GetSystemTime和GetLocalTime声明如下:WINBASEAPIVOIDWINAPIGetSystemTime(__outLPSYSTEMTIMElpSystemTime);WINBASEAPIVOIDWINAPIGetLocalTime(__outLPSYSTEMTIMElpSystemTime);lpSystemTime是获取系统时间的结构。调用函数的例子如下://获取系统时间。//蔡军生2007/11/11QQ:9073204深圳voidTestSystem(void){//获取系统的UTC时间。SYSTEMTIMEstUTC;::GetSystemTime(&stUTC);//显示时间的间隔。constintnBufSize=256;TCHARchBuf[nBufSize];wsprintf(chBuf,_T(UTC:%u/%u/%u%u:%u:%u:%u%d\r\n),stUTC.wYear,stUTC.wMonth,stUTC.wDay,stUTC.wHour,stUTC.wMinute,stUTC.wSecond,stUTC.wMilliseconds,stUTC.wDayOfWeek);OutputDebugString(chBuf);//获取当地的时间。SYSTEMTIMEstLocal;::GetLocalTime(&stLocal);//显示时间的间隔。wsprintf(chBuf,_T(Local:%u/%u/%u%u:%u:%u:%u%d\r\n),stLocal.wYear,stLocal.wMonth,stLocal.wDay,stLocal.wHour,stLocal.wMinute,stLocal.wSecond,stLocal.wMilliseconds,stLocal.wDayOfWeek);OutputDebugString(chBuf);}上面两个函数在我测试时输出的结果,如下:UTC:2007/11/111:53:1:460Local:2007/11/119:53:1:460strTime.Format(_T(%d-%d-%d%d:%d:%d.%d),stLocal.wYear,stLocal.wMonth,stLocal.wDay,stLocal.wHour,stLocal.wMinute,stLocal.wSecond,stLocal.wMilliseconds);//时间显示在VC++中,我们可以借助CTime时间类,获取系统当前日期:CTimet=CTime::GetCurrentTime();//获取系统日期intd=t.GetDay();//获得几号inty=t.GetYear();//获取年份intm=t.GetMonth();//获取当前月份inth=t.GetHour();//获取当前为几时intmm=t.GetMinute();//获取分钟ints=t.GetSecond();//获取秒intw=t.GetDayOfWeek();//获取星期几,注意1为星期天,7为星期六1.使用CTime类CTimetm=CTime::GetCurrentTime();CStringstr=tm.Format(“现在时间是:%Y年%m月%d日%X”);MessageBox(str,NULL,MB_OK);2:得到系统时间日期(使用GetLocalTime)SYSTEMTIMEst;CStringstrDate,strTime;GetLocalTime(&st);strDate.Format(“%4d-%2d-%2d”,st.wYear,st.wMonth,st.wDay);strTime.Format(“%2d:%2d:%2d”,st.wHour,st.wMinute,st.wSecond);3.使用GetTickCount//获取程序运行时间longt1=GetTickCount();//程序段开始前取得系统运行时间(ms)……//程序段longt2=GetTickCount();//程序段结束后取得系统运行时间(ms)longt=t2-t1;//前后之差即程序运行时间(ms)本篇文章来源于黑基网-中国最大的网络安全站点原文链接:
本文标题:获取系统时间
链接地址:https://www.777doc.com/doc-737302 .html