题目描述
给出年分m和一年中的第n天,算出第n天是几月几号。
输入
输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。
输出
可能有多组测试数据,对于每组数据,按 yyyy-mm-dd的格式将输入中对应的日期打印出来。
样例输入 Copy
2013 60
2012 300
2011 350
2000 211
样例输出 Copy
2013-03-01
2012-10-26
2011-12-16
2000-07-29
代码如下:
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <math.h>
using namespace std;
int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int judge(int y){
if(y%400==0||(y%4==0&&y%100!=0)){
return 1;
}
return 0;
}
int main(){
int y,n;
while(cin>>y>>n){
if(judge(y)){
month[2]=29;
}else{
month[2]=28;
}
int i;
for(i=1;n>month[i];i++){ //当剩余的天数还大于当月天数时 就月数加1
n-=month[i];
}
printf("%04d-%02d-%02d\n",y,i,n);
}
return 0;
}