Time
来源:互联网 发布:oracle数据库全库备份 编辑:程序博客网 时间:2024/06/05 20:05
B.TimeTime Limit: 1000 MSMemory Limit: 100000 KTotal Submit: 1458 (431 users)Total Accepted: 322 (310 users)Special Judge: NoDescription
Kim是一个掌控时间的大师。不同于一般人,他习惯使用秒来计算时间。如果你问他现在是几点,他会告诉你现在是今天的xxxx秒。Mik想要考考Kim。他想知道从某一天的00:00:00开始,经过s秒后是哪一天。但是Mik不会计算答案,他需要你的帮助。
注意:我们认为一天从00:00:00开始,到23:59:59结束。00:00:00经过1秒后是00:00:01;从00:00:00开始,加86400(60*60*24)秒后就是下一天的00:00:00.
Input第一行一个整数T表示数据组数。
接下来T行,每行一个日期yyyy-MM-dd,接下来一个整数s表示s秒。
Output对于每个输入,输出一行yyyy-MM-dd 表示答案。对于不足两位的数要补齐前导0。
Sample Input32016-12-10 10002016-02-28 864002016-01-01 1000000Sample Output
2016-12-102016-02-292016-01-12Hint
T<=100
s<=2147483647
日期在1800-01-01到2100-01-01之间
闰年的判断:
1.能被4整除且不能被100整除的为闰年.
2.能被400整除的是闰年.
#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <iostream>#define FOR(i,j,k) for(int i=j;i<=k;i++)using namespace std;bool isleap(int y){if ((y%4==0 && y%100!=0) || y%400==0)return true;return false;}int maxday(int y,int m){if (m==2){if (isleap(y))return 29;else return 28;}else{if (m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)return 31;else return 30;}}int main (int argc, char *argv[]){int noc;int y,m,d;int s;scanf("%d",&noc);while (noc--){scanf("%d-%d-%d%d",&y,&m,&d,&s);int ad=s/86400.0;FOR(_,1,ad){d++;if (d>maxday(y,m)){d=1;m++;}if (m==13){m=1;y++;}}printf("%d-%.2d-%.2d\n",y,m,d);}return 0;}
0 0
- time
- time
- TIME
- Time
- TIME
- Time
- time
- Time
- time
- time
- time
- time
- Time
- TIME
- time
- time
- Time
- time
- ArrayList和LinkedList
- 程序学习之路
- 将Qt Creator导入Cmake项目
- vim 找文档的正确姿势
- 【Mybatis】配置文件加载属性
- Time
- 结构体的内存对齐
- Android开发之将json数据解析后填充到ListView
- J2EE 环境 Sturts2+Spring+MyBatis+bootstraps 整合案例(非maven项目)
- commons dbutils 的介绍与使用
- Java扫描classpath指定包路径下所有class
- 图的着色优化问题
- iOS开发 之 AFNetworking3.0使用详解
- 知识库--WebappClassLoader(47)