zoukankan      html  css  js  c++  java
  • VC/MFC中计算程序/系统运行时间

    VC/MFC中计算程序/系统运行时间

    SkySeraph Dec.30th 2010  HQU

    Email:zgzhaobo@gmail.com    QQ:452728574

    Latest Modified Date:Dec.30th 2010 HQU

    法一 利用GetTickCount函数 

    获取程序运行时间 

    。。。

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

    。。。。。。
    //to do sth

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

    cout
    <<t2-t1<<endl;//前后之差即程序运行时间

    。。。

    获取系统运行时间

    代码
    CString str;

    //获取程序运行时间

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

    //Sleep(500);

    //AfxMessageBox("do something...");

    。。。。。。
    //to do sth

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

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

    AfxMessageBox(str);

        

    法二 利用C/C++计时函数

     获取程序运行时间

    代码
    #include "time.h"

    。。。

    clock_t start, finish;

    start
    = clock();

    。。。。。。
    //to do sth

    finish
    = clock();

    //cout<<(double)(finish-start)/CLOCKS_PER_SEC<<" seconds"<<endl;

    printf(
    "%f seconds\n",(double)(finish-start)/CLOCKS_PER_SEC);



    。。。

    函数/参数说明

    clock()

    C/C++计时函数,与其相关的数据类型是clock_t

    返回:从"此程序进程开启"到"程序中调用clock()函数"之间CPU计时单元数,MSDN中称挂钟时间(wal-clock)

    clock_t

    用来保存时间的数据类型,在time.h中定义:typedef   long   clock_t;  为长整型

    CLOCKS_PER_SEC

    用来表示一秒钟会有多少个时钟计时单元,在time.h中定义:#define CLOCKS_PER_SEC ((clock_t)1000)  

    获取系统运行的时间

    代码
    CString str,str1;

    //获取系统运行时间

    long t=GetTickCount();

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

    str
    =str1;

    t
    %=3600000;

    str1.Format(
    "%d分",t/60000);

    str
    +=str1;

    t
    %=60000;

    str1.Format(
    "%d秒",t/1000);

    str
    +=str1;

    AfxMessageBox(str);

    法三  利用CTime类 获取系统时间

    CString str;

    //获取系统时间

    CTime tm;

    tm
    =CTime::GetCurrentTime();

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

    AfxMessageBox(str);

    法四  利用GetLocalTime类 获取系统时间

    代码
    SYSTEMTIME st;

    CString strDate,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);

    AfxMessageBox(strDate);

    AfxMessageBox(strTime);

    Author:         SKySeraph

    Email/GTalk: zgzhaobo@gmail.com    QQ:452728574

    From:         http://www.cnblogs.com/skyseraph/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,请尊重作者的劳动成果。


    作者:skyseraph
    出处:http://www.cnblogs.com/skyseraph/
    更多精彩请直接访问SkySeraph个人站点:http://skyseraph.com//
    Email/GTalk: zgzhaobo@gmail.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    error C4996: Function call with parameters that may be unsafe
    C mysql (C API Commands out of sync; you can't run this command now)
    messagpack的使用
    关于openssl的编译与使用
    openssl & openssh
    解决SOCKET通信 ERROR_INSUFFICIENT_BUFFER错误
    C++ mysql 乱码
    [置顶] docker1.12--docker命令行帮助文档
    [置顶] kubernetes资源类型--secret和Service Account
    [置顶] kubernetes资源类型--Volume
  • 原文地址:https://www.cnblogs.com/skyseraph/p/1922341.html
Copyright © 2011-2022 走看看