本文我们来讲C++知识精讲的第3篇,时间戳,此专栏会讲许多,各种各样的类型,如果喜欢此专栏请订阅持续关注,感谢大家的支持。接下来,进入今天的知识精讲。
--------------------------------------------------------------------------------------------------------------------------------
实战导入
某日某国的国家安全局获得一份珍贵的材料,上面记载了一个即将进行的活动的信息。不过,国家安全局没法获知具体的时间,因为材料上的时间使用的是LINUX的时间戳,即是从2011年1月1日0时0分0秒开始到该时刻总共过了多少秒。此等重大的责任现在落到了小明的肩上,给出小明该时间戳,聪明的你能帮小明计算出活动在哪一天实施吗?(为了简化计算,规定一年12个月,每个月固定都是30天)。
输入(秒数):
130432457
输出(年月日):
2015 3 10
---------------------------------------------------------------------------------------------------------------------------------
算法分析
我们可以将秒数整数除以每天的秒数,得出天数,接下来除以一年的天数,求出年数,以此类推,就可以完成了,那让我们用代码实现他吧。
---------------------------------------------------------------------------------------------------------------------------------
代码实现
#include <bits/stdc++.h>
using namespace std;
int main (){
int t,y=2011,m=1,d=1;
cin>>t;
int ds = t/(24*60*60); //算出总天数,每天的秒数为24*60*60
y += ds/(12*30); //算出年数,一年12*30天
ds = ds%(12*30); //算出剩余天数
m += ds/30; //算出月数
d += ds%30; //算出天数
cout<<y<<" "<<m<<" "<<d<<endl;
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
输出结果
---------------------------------------------------------------------------------------------------------------------------------
小结
看,代码就这样实现了,如果又看不明白的地方,可以在评论区留言告诉我,我看到之后我会一 一回复的。