HOJ 2315 Time(模拟)
2024-08-30 08:24:24
Description |
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 Input |
3 |
Sample Output |
2016-12-10 |
Hint |
T<=100 s<=2147483647 日期在1800-01-01到2100-01-01之间 闰年的判断: 1.能被4整除且不能被100整除的为闰年. 2.能被400整除的是闰年. |
Source |
"科林明伦杯"哈尔滨理工大学第六届程序设计团队赛 |
#include<cstdio>
#include<iostream> using namespace std; char s[];
int table[]={,,,,,,,,,,,,};
int t,year,mon,day;
long long ti; int check(int n)
{
if(n%==)return ;
if(n%==&n%!=)return ;
return ;
} int getday(int n)
{
if(n==)return check(year)?:;
return table[n];
} int main()
{
cin>>t;
while(t--)
{
year=mon=day=;
cin>>s>>ti; year+=(s[]-'')*;
year+=(s[]-'')*;
year+=(s[]-'')*;
year+=(s[]-'');
mon+=(s[]-'')*;
mon+=s[]-'';
day+=(s[]-'')*;
day+=s[]-''; day+=(ti/); while(day>)
{
day-=getday(mon++);
if(day<=){mon--;day+=getday(mon);break;}
if(mon==)
{
mon=;
year++;
}
}
printf("%d-",year);
if(mon<)printf("0%d-",mon);else printf("%d-",mon);
if(day<)printf("0%d\n",day);else printf("%d\n",day);
}
return ;
}
最新文章
- word20161220
- Hibernate4Maven
- is A和has A的区别
- javaEE开发案例——购物车
- 从python中copy与deepcopy的区别看python引用
- Android EditText控件行尾为表情时的BUG
- vim setting
- 2016青岛网络赛 Sort
- Java课程设计 猜数游戏个人博客
- Django的设计模式
- 【论文速读】Multi-Oriented Scene Text Detection via Corner Localization and Region Segmentation[2018-CPVR]
- 连接rabbitmq
- Centos7X部署Zabbix监控
- appbar导航
- 强化学习---TRPO/DPPO/PPO/PPO2
- Bitbucket备份恢复
- mongodb安装教程
- 【转】C# 生成二维码并且在中间加Logo(图片合并)
- 编译EXE文件的时候pcap编译不进去。 pyinstaller pcap pypcap 报错
- Python 将字典的元素按照键或者值的大小进行排序