首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Date and time utilities

C++包括对两种时间操作的支持:

  • chrono库,它是一个灵活的类型集合,可以跟踪不同精度的时间(%28等)。std::chrono::time_point29%。
  • C样式的日期和时间库%28例如。std::time%29

chrono图书馆

chrono库定义了三种主要类型%28持续时间、时钟和时间点%29以及实用程序函数和常见类型。

持续时间

持续时间由一段时间组成,定义为某一时间单位的若干个刻度。例如,“42秒”可以由一个1秒单位的42个刻度组成的持续时间表示。

在标头中定义<chrono>

*。

在命名空间std::timeo中定义

持续时间%28C++11%29 a时间间隔%28类模板%29

时钟由起点%28或纪元%29和滴答率组成。例如,一个时钟可能有一个1970年1月1日的时代,并且每秒钟都会滴答作响。C++定义了三种时钟类型:

在标头中定义<chrono>

*。

在命名空间std::timeo中定义

系统[医]时钟%28C++11%29来自系统范围内的实时时钟%28class%29

稳住[医]永远不会调整的时钟%28C++11%29

高[医]分辨力[医]时钟%28C++11%29具有最短的刻度周期的时钟%28C++11%29

时间点

时间点是指自特定时钟时代以来过去的时间。

在标头中定义<chrono>

*。

在命名空间std::timeo中定义

时间[医]时间点%28C++11%29 a点%28类模板%29

C风格的日期和时间库

还提供了C样式的日期和时间函数,如std::time_t,,,std::difftimeCLOCKS_PER_SEC...

此示例显示有关函数调用的执行时间的信息:

二次

代码语言:javascript
复制
#include <iostream>
#include <chrono>
#include <ctime>
 
long fibonacci(unsigned n)
{
    if (n < 2) return n;
    return fibonacci(n-1) + fibonacci(n-2);
}
 
int main()
{
    std::chrono::time_point<std::chrono::system_clock> start, end;
    start = std::chrono::system_clock::now();
    std::cout << "f(42) = " << fibonacci(42) << '\n';
    end = std::chrono::system_clock::now();
 
    std::chrono::duration<double> elapsed_seconds = end-start;
    std::time_t end_time = std::chrono::system_clock::to_time_t(end);
 
    std::cout << "finished computation at " << std::ctime(&end_time)
              << "elapsed time: " << elapsed_seconds.count() << "s\n";
}

二次

可能的产出:

二次

代码语言:javascript
复制
f(42) = 267914296
finished computation at Mon Jul 29 08:41:09 2013
elapsed time: 0.670427s

二次

代码语言:txt
复制
 © cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券