VC++ MFC编程,如何获取当前系统时间

VC++ MFC编程,如何获取当前系统时间,第1张

1、使用CTime类

#include "afxh"

void main()

{

    CString str; //获取系统时间

    CTime tm;

    tm=CTime::GetCurrentTime();   

    str=tmFormat("现在时间是%Y年%m月%d日%X");

    MessageBox(NULL,str,NULL,MB_OK);

}

解析:

    CTime,CString共同用的头文件为“afxh”,

    CTime类可以提取系统的当前时间函数GetCurrentTime(),并且可以通过Format方法转换成CString,如下例

    CTime tmSCan = CTime::GetCurrentTime();

    CString szTime = tmScanFormat("'%Y-%m-%d %H:%M:%S'");

2、得到系统时间日期(使用GetLocalTime)

#include "afxh"

void main()

{

    SYSTEMTIME st;   

    CString strDate,strTime;   

    GetLocalTime(&st);   

    strDateFormat("M----",stwYear,stwMonth,stwDay);   

    strTimeFormat("-:-:-",stwHour,stwMinute,stwSecond);

    printf("%s\n",strDate);

    printf("%s\n",strTime);

}

解析:

    利用GetLocalTime函数,获取系统当前时间,并将获得的值放在SYSTEMTIME结构中,

    同样的也可以使用Format方法,不过这里使用的是CString类的Format方法

    SYSTEMTIME   st;

    GetLocalTime(&st);

    CString   time;

    timeFormat( "M-d-d     d:d:d ",   stwYear);

3、使用GetTickCount//获取系统运行时间,也可以实现对程序的运行时间的计算

#include "afxh"

#include "afxwinh"

void main()

{

    CString str,str1;

//     long t1=GetTickCount();//程序段开始前取得系统运行时间(ms)   

//     Sleep(500);     

//     long t2=GetTickCount();//程序段结束后取得系统运行时间(ms)    

//     strFormat("time:%dms",t2-t1);//前后之差即 程序运行时间   

//     AfxMessageBox(str);

   

    long t=GetTickCount(); //获取系统当前时间      

    str1Format("系统已运行 %d时",t/3600000);   

    str=str1;    

    t%=3600000;   

    str1Format("%d分",t/60000);   

    str+=str1;   

    t%=60000;   

    str1Format("%d秒",t/1000);

    str+=str1;

    AfxMessageBox(str);

}

解析:GetTickCount函数可以获取系统运行的时间,利用其差值可以获取程序的运行时间

嘿嘿,我看了半天终于明白问题所在了。

比如你在8:30:33启动60秒的定时器,到8:31:33你的时间才会刷新,滞后了33秒。因此如果想在整分时精确进位,就必须在整分调用SetTimer启动60秒的定时器。

所以可以这样做:

第一次启动定时器时要动态计算间隔时间,取下一个整分时间与当前时间秒的差值做为定时器的间隔时间,对上面例子来说第一次SetTimer应该设置间隔时间为27秒,然后在响应WM_TIMER消息时,再调用SetTimer重设间隔时间为60秒,这样就可以在整分时精确刷新时间了。

加上头文件timeh

调用函数time() 以及localtime() 函数

以下是例子:

#include <stdioh>

#include <timeh>

int main()

{

time_t nowtime;

time( &nowtime ); //获取时间

struct tm timeinfo; //定义时间结构体

timeinfo = localtime( &nowtime ); //转化为当地时间

int year, month, day, hour, min, sec;

year = timeinfo->tm_year + 1900; //从1900年开始计数,所以+1900

month = timeinfo->tm_mon + 1; //从0开始计数,所以+1

day = timeinfo->tm_mday;

hour = timeinfo->tm_hour;

min = timeinfo->tm_min;

sec = timeinfo->tm_sec;

printf("%d %d %d %d:%d:%d\n", year, month, day, hour, min, sec);

return 0;

}

希望对你有帮助!!!

以上就是关于VC++ MFC编程,如何获取当前系统时间全部的内容,包括:VC++ MFC编程,如何获取当前系统时间、VC++动态显示时间(精确到分就可以了)、VC6,如何获取系统时间,C函数是什么,如何用谢谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9303816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存