---------------------
本文来自 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了. 爆搜到时限之后直接输出−1−1-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]之间.别过界了. 这样我们再也不怕询问时间的问题了!