给出年份 y和一年中的第 d天,算出第 d天是几月几号。
输入格式
输入包含多组测试数据。
每组数据占一行,包含两个整数 y 和 d。
输出格式
每组数据输出一行一个结果,格式为 yyyy-mm-dd。
数据范围
输入最多包含 100 组数据,
1≤y≤3000,
1≤d≤366,
数据保证合法。
输入样例:
2000 3
2000 31
2000 40
2000 60
2000 61
2001 60
输出样例:
2000-01-03
2000-01-31
2000-02-09
2000-02-29
2000-03-01
2001-03-01
#includeusing namespace std; int mouth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int is_run(int y) //闰年 { if((y%4==0&&y%100)||y%400==0) return 1; return 0; } int day(int y,int m) //每个月多少天 { if(m==2) return mouth[m]+is_run(y); return mouth[m]; } int main() { int y,s; while(cin>>y>>s) { int m=1,d=1; s--; while(s--) { if(++d>day(y,m)) //如果大于这个月的天数,月数加1,天数为0 { d=1; if(++m>12) //如果大于月数,年数加1 { m=1; y++; } } } printf("%04d-%02d-%02d\n",y,m,d); } return 0; }
上一篇:作业--day41