zoukankan      html  css  js  c++  java
  • 关于Ctime库

    ---------------------

    本文来自 Fuko_Ibuki 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_31908675/article/details/81233816?utm_source=copy   

    ctime
    
    时间!关于日期和时间的计算在信息学竞赛中非常重要. 
    这一次我来介绍一下ctime中两个神奇的函数. 
    1:clock 
    这个东西可以算代码运行的时间.用法是这样的:
    
    
    
    clock_t nowtime=clock();
    ...
    cout<<clock()-nowtime<<endl;123
    
    这时候输出了一个数字,单位是毫秒,表示运行的时间. 
    这样就可以判断你是不是tletletle了. 
    爆搜到时限之后直接输出−11-1其实也是用的这种方法. 
    2.difftime 
    这个函数用来算两个时间之间的时间差. 
    用法? 
    首先在c++中,时间是由一个叫tmtmtm的结构体储存的. 
    这个结构体有9个成员.
    
    
    
    struct tm{
    int tm_sec;//
    int tm_min;//分钟
    int tm_hour;//小时
    int tm_mday;//(这个月的)哪一天
    int tm_mon;//
    int tm_year;//年(这个年是以1900作为起始时间的,设置的时候要减去1900)
    int tm_wday;//星期几,0表示星期天
    int tm_yday;//今年从1月1日开始的第几天
    int tm_isdst;//是否是夏令时
    };1234567891011
    
    然后有一个函数mktime(&t) 可以将结构体表示的时间变为秒表示的时间. 
    接下来用difftime函数可以算出两个日期之间差的秒数,除以864008640086400就是天数. 
    举例计算从今年7月22日(谁的生日?) 到今天 (7月27日) 的天数.应该是5天.
    
    int main()
    {
        tm t1= {0},t2= {0};
        t1.tm_year=2018-1900,t1.tm_mon=6,t1.tm_mday=22;
        t2.tm_year=2018-1900,t2.tm_mon=6,t2.tm_mday=27;
        cout<<difftime(mktime(&t2),mktime(&t1))/86400<<endl;
    }//输出51234567
    
    要注意的点: 
    1.年份从1900开始,月份以1月为准,要减掉1; 
    2.计算的时间的范围在[1900,3000]之间.别过界了. 
    这样我们再也不怕询问时间的问题了!
  • 相关阅读:
    项目中遇到的问题:前台 disabled 与 后台disabled
    差距
    那些零碎的感悟,那些成长的事【壹】
    假期数据结构学习总结
    烟大 2242: 回文(栈和队列)
    烟大 2241: 相同序列(栈和队列)
    烟大 2239: 十进制与八进制的转换(栈和队列)
    烟大 2238: 括号匹配(栈和队列)
    hdu 1018:Big Number(水题)
    hdu 2050:折线分割平面(水题,递归)
  • 原文地址:https://www.cnblogs.com/cgjh/p/9751120.html
Copyright © 2011-2022 走看看