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

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

ctime

时间!关于日期和时间的计算在信息学竞赛中非常重要.
这一次我来介绍一下ctime中两个神奇的函数.
:clock
这个东西可以算代码运行的时间.用法是这样的: clock_t nowtime=clock();
...
cout<<clock()-nowtime<<endl; 这时候输出了一个数字,单位是毫秒,表示运行的时间.
这样就可以判断你是不是tletletle了.
爆搜到时限之后直接输出−−-1其实也是用的这种方法.
.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;//是否是夏令时
}; 然后有一个函数mktime(&t) 可以将结构体表示的时间变为秒表示的时间.
接下来用difftime函数可以算出两个日期之间差的秒数,除以864008640086400就是天数.
举例计算从今年7月22日(谁的生日?) 到今天 (7月27日) 的天数.应该是5天. int main()
{
tm t1= {},t2= {};
t1.tm_year=-,t1.tm_mon=,t1.tm_mday=;
t2.tm_year=-,t2.tm_mon=,t2.tm_mday=;
cout<<difftime(mktime(&t2),mktime(&t1))/<<endl;
}//输出51234567 要注意的点:
.年份从1900开始,月份以1月为准,要减掉1;
.计算的时间的范围在[,]之间.别过界了.
这样我们再也不怕询问时间的问题了!
04-21 03:02