c++获取系统时间的方法

Linux

方法一

使用time.h中的gettimeofday(),示例代码如下,

#include <iostream>
#include <sys/time.h>

int main() {
    struct timeval start, end;
    double totalTime;

    gettimeofday(&start, NULL);

    // 在这里执行代码
    ...

    gettimeofday(&end, NULL);

    totalTime = (end.tv_sec - start.tv_sec) + (end.tv_usec - start.tv_usec) / 1000000.0;

    std::cout << "Total time: " << totalTime << " seconds" << std::endl;

    return 0;
}

使用gettimeofday()函数获取的时间是以微秒为单位的。因此,需要将微秒转换为秒,即除以 1e6,以获得以秒为单位的时间间隔。 

方法二

使用time.h中的clock_gettime(),示例代码如下,

#include <iostream>
#include <time.h>

int main() {
    struct timespec start, end;
    double totalTime;

    clock_gettime(CLOCK_MONOTONIC, &start);

    // 在这里执行代码
    ...

    clock_gettime(CLOCK_MONOTONIC, &end);

    totalTime = (end.tv_sec - start.tv_sec) + (end.tv_nsec - start.tv_nsec) / 1e9;

    std::cout << "Total time: " << totalTime << " seconds" << std::endl;

    return 0;
}

使用clock_gettime()函数获取的时间是以纳秒为单位的。因此,需要将纳秒转换为秒,即除以 1e9,以获得以秒为单位的时间间隔。 

Windows

方法一

在Windows平台上,可以使用Windows API中的GetSystemTime()、GetSystemTimeAsFileTime()或QueryPerformanceCounter()等函数来获取系统时间。下面是一个简单的示例代码,

#include <iostream>
#include <windows.h>

int main() {
    LARGE_INTEGER frequency, start, end;
    double totalTime;

    QueryPerformanceFrequency(&frequency);

    QueryPerformanceCounter(&start);

    // 在这里执行代码
    ...

    QueryPerformanceCounter(&end);

    totalTime = static_cast<double>(end.QuadPart - start.QuadPart) / frequency.QuadPart;

    std::cout << "Total time: " << totalTime << " seconds" << std::endl;

    return 0;
}

方法二

C++11引入了<chrono>头文件,提供了高精度的时间测量功能。可以使用std::chrono::high_resolution_clock来获取高分辨率时钟,并通过std::chrono::time_point计算时间间隔。以下是一个示例代码,

#include <iostream>
#include <chrono>

int main() {
    auto start = std::chrono::high_resolution_clock::now();

    // 在这里执行代码
    ...

    auto end = std::chrono::high_resolution_clock::now();

    std::chrono::duration<double> totalTime = end - start;

    std::cout << "Total time: " << totalTime.count() << " seconds" << std::endl;

    return 0;
}

方法三

C++标准库中的<ctime>头文件提供了clock()函数,可用于测量CPU时间。这个函数返回自程序启动以来的时钟周期数。以下是一个简单示例,

#include <iostream>
#include <ctime>

int main() {
    clock_t start = clock();

    // 在这里执行代码
    ...

    clock_t end = clock();

    double totalTime = static_cast<double>(end - start) / CLOCKS_PER_SEC;

    std::cout << "Total time: " << totalTime << " seconds" << std::endl;

    return 0;
}
  • 30
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chen_znn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值