• C++ 时间操作(获取毫秒级)


    //使用标准C语言的time函数,可以满足一般性需要

    #include <time.h>

    #include <stdio.h>

    int main( void )

    {

    time_t t = time( 0 );

    char tmp[64];

    strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",

    localtime(&t) );

    puts( tmp );

    return 0;

    }

    //GetLocalTime获取当前系统时间,精确到微妙级

    #include <windows.h>

    #include <stdio.h>

    int main( void )

    {

    SYSTEMTIME sys;

    GetLocalTime( &sys );

    printf( "%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n"

    ,sys.wYear,sys.wMonth,sys.wDay

    ,sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds

    ,sys.wDayOfWeek);

    return 0;
    }

    //利用win32 API  QueryPerformanceFrequency与QueryPerformanceCounter,可以更精确精确的计算,例如拿来测试,网络抓包的精确分析

    #include <windows.h>

    #include <stdio.h>
    #include <iostream>
    using namespace std;
    int main() {
        LARGE_INTEGER lv,lv_b;

        // 获取每秒多少CPU Performance Tick
        QueryPerformanceFrequency( &lv );

        // 转换为每个Tick多少秒
        double secondsPerTick = 1.0 / lv.QuadPart;
        QueryPerformanceCounter( &lv_b );
        for ( size_t i = 0; i < 100; ++i ) {
            // 获取CPU运行到现在的Tick数
            QueryPerformanceCounter( &lv );
            cout.precision( 6 );
            // 计算CPU运行到现在的时间
            // 比GetTickCount和timeGetTime更加精确
            LONGLONG duration = lv.QuadPart-lv_b.QuadPart;
            double timeElapsedTotal = secondsPerTick * duration;
            cout << fixed << showpoint << timeElapsedTotal << endl;
            //printf( "%lf \n", timeElapsedTotal ) ;
        }
        return 0;
    }
    //如果上面还不能满足你的需求,请看下面

    http://www.boost.org/doc/libs/1_53_0/doc/html/date_time.html

    可以提供纳秒级的精确计算,而且跨平台

  • 相关阅读:
    javascript 基础知识-1
    AngularJs-指令和指令之间的交互(动感超人)
    AngularJs-指令和控制器交互
    奇点大学公开课之尼葛洛庞帝讲述物联网和智能设备
    AngularJs-数据绑定
    AngularJs-指令1
    AngularJs-MVC之路由、模块以及依赖注入
    AngularJS-MVC
    利用canvas制作图片(可缩放和平移)+相框+文字
    Django rest framework 认证组件源码分析
  • 原文地址:https://www.cnblogs.com/UnGeek/p/2950863.html
Copyright © 2020-2023  润新知