某日某国的国家安全局获得一份珍贵的材料,上面记载了一个即将进行的恐怖活动的信息。不过,国家安全局没法获知具体的时间,因为材料上的时间使用的是LINUX的时间戳,即是从2011年1月1日0时0分0秒开始到该时刻总共过了多少秒。此等重大的责任现在落到了小明的肩上,给出小明该时间戳,聪明的你能帮小明计算出恐怖活动在哪一天实施吗?(为了简化计算,规定一年12个月,每个月固定都是30天)。
一行,包含一个整数n,表示从2011年1月1日0时0分0秒开始到该时刻过了n秒。
一行,包含三个整数y、m、d,分别表示恐怖活动在y年m月d日实施
样例输入
130432457
样式输出
2015 3 10
这个的我代码不会完成,有呢为人能注释解答,必采纳,谢谢
反正就是秒数除以60就是分钟数,求余60就是秒数,依次类推
#include <iostream>
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;
}
把时间戳通过计算得出最终kongmu活动的日期。
#include <iostream>
using namespace std;
int main(void){
int timeStamp;
int y,m,d;
cin>>timeStamp; //获取时间戳
//年份为 时间戳的秒数除以一年的秒数得出目标kongbu活动距离2011年过去几年,加上时间戳起始年份即kongbu活动年份
y = (timeStamp/(12*30*24*60*60))+2011;
//同理月份 为时间戳的秒数除以一个月有多少秒得出kongbu活动距离2011年1月要过去的月份,再对12求余得出kongbu活动距2011年1月份的月数
//再加上起始月份,即kongbu活动的月份
m = (timeStamp/(30*24*60*60))%12+1;
//目标日期为月份第几日 ,为时间戳的秒数除以一天的秒数得出目kongbu活动距离现在的天数,再对30求余得出是距离1号要过去及几天,
//然后再加上起始日期1号,即为kongbu活动是在此月第几号开始
d = (timeStamp/(24*60*60))%30+1;
//打印结果
cout<<y<<" "<<m<<" "<<d;
return 0;
}