大挪耗

c++时间操作chrono库

#include <iomanip>
#include "iostream"
#include "chrono"


using namespace::std;

int main()
{
    chrono::hours t1(1);
    chrono::minutes t2(60);
    chrono::seconds t3(60*60);
    chrono::milliseconds t4(60*60*1000);
    //chrono::microseconds t5(60*60*1000*1000);//警告:整数溢出。
    //chrono::nanoseconds t6(60*60*1000*1000*1000);//警告:整数溢出。

    if (t1==t2)cout<<"t1==t2\n";
    if(t1==t3)cout<<"t1==t3\n";
    if (t1==t4)cout<<"t1==t4\n";

    //获取时钟周期的值。

    cout<<"t1="<<t1.count()<<endl;
    cout<<"t2="<<t2.count()<<endl;
    cout<<"t3="<<t3.count()<<endl;
    cout<<"t4="<<t4.count()<<endl;

    chrono::seconds t7(1);
    chrono::milliseconds t8(1000);
    chrono::microseconds t9(1000*1000);
    chrono::nanoseconds t10(1000*1000*1000);

    if(t7 == t8) cout<<"t7==t8\n";
    if (t7 == t9) cout<<"t7==t9\n";
    if (t7 == t10)  cout<<"t7==t10\n";

    //获取时钟周期的值
    cout<<"t7="<<t7.count()<<endl;
    cout<<"t8="<<t8.count()<<endl;
    cout<<"t9="<<t9.count()<<endl;
    cout<<"t10="<<t10.count()<<endl;

    //1)静态成员函数chrono::system_clock::now()用于获取系统时间。(c++时间)
    chrono::time_point<chrono::system_clock> now=chrono::system_clock::now();

    //2)静态成员函数chrono::system_clock::to_time_t()把系统时间转换为time_t。(UTC时间)
    time_t  t_now=chrono::system_clock::to_time_t(now);

    t_now=t_now+24*60*60;//把当前时间加一天。
    //t_now=t_now+ -1*60*60;
    //t_now=t_now+120;//

    // std::localtime()函数把time_t转换为本地时间.(北京时间).
    //3)std::localtime()不是线程安全的,VS用localtime_s替代,linux用localtime_r替代。
    tm* tm_now=std::localtime(&t_now);

    //4)格式化输出tm结构体中的成员。
    std::cout<<std::put_time(tm_now,"%Y-%m-%d %H:%M:%S")<<std::endl;
    std::cout<<std::put_time(tm_now,"%Y-%m-%d")<<std::endl;
    std::cout<<std::put_time(tm_now,"%H:%M:%S")<<std::endl;
    std::cout<<std::put_time(tm_now,"%Y%m%d%H%M%S")<<std::endl;

    stringstream ss;//创建stringstream对象ss,需要包含<sstream>头文件。
    ss<<std::put_time(tm_now,"%Y-%m-%d %H:%M:%S");
    string timestr=ss.str();//把ss转换string的对象.
    cout<<timestr<<endl;

//3.计时器
    //静态成员函数chrono::steady_clock::now()获取开始的时间.
    chrono::steady_clock::time_point starts=chrono::steady_clock::now();

    //执行一些代码,让它消耗一些时间。
    cout<<"计时开始......\n";
    for (int ii = 0; ii < 10; ++ii) {
        cout<<"我是一只傻傻鸟。\n";
    }
    cout<<"计时完成.........\n";

    //静态成员函数chrono::steady_clock::now()获得结束的时间点。
    chrono::steady_clock::time_point end=chrono::steady_clock::now();

    //计算消耗的时间。
    auto dt=end-starts;

    cout<<"耗时:"<<dt.count()<<"纳秒("<<(double)dt.count()/(1000*1000*1000)<<"秒)";

    //注很多时候都可以使用auto代替。
    
}

t1==t2
t1==t3
t1==t4
t1=1
t2=60
t3=3600
t4=3600000
t7==t8
t7==t9
t7==t10
t7=1
t8=1000
t9=1000000
t10=1000000000
2024-05-06 20:36:03
2024-05-06
20:36:03
20240506203603
2024-05-06 20:36:03
计时开始……
我是一只傻傻鸟。
我是一只傻傻鸟。
我是一只傻傻鸟。
我是一只傻傻鸟。
我是一只傻傻鸟。
我是一只傻傻鸟。
我是一只傻傻鸟。
我是一只傻傻鸟。
我是一只傻傻鸟。
我是一只傻傻鸟。
计时完成………
耗时:999200纳秒(0.0009992秒)


已发布

分类

可以收藏大挪耗一下。下载麻烦点城通网盘,站长保证下载速度,不会限速的,放心点就是了;分卷,安卓下载为txt:程序下载为url,不会下载参考不会下载。如果你想让本站活的久一点,请直接捐助

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注