问题描述:
给出年分m和一年中的第n天,算出第n天是几月几号。
输入:
输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。
输出:
可能有多组测试数据,对于每组数据, 按 yyyy-mm-dd的格式将输入中对应的日期打印出来。
示例:
2013 60
2012 300
2011 350
2000 211
输出:
2013-03-01
2012-10-26
2011-12-16
2000-07-29
代码:
#include <stdio.h>
int main(){
int year,month,day;
int days;
int leap,i;
int tab[2][12] = {
{0,31,59,90,120,151,181,212,243,273,304,334},
{0,31,60,91,121,152,182,213,244,274,305,335}
};
while(scanf("%d%d",&year,&days)!=EOF){
leap = ((year%4==0&&year%100!=0)||(year%400==0));//判断是否闰年
for(i=1;i<12;i++){
if(days-tab[leap][i]<=0&&days-tab[leap][i-1]>=0)
break;
}
month = i;
day = days-tab[leap][i-1];
printf("%04d-%02d-%02d\n",year,month,day);
}
return 0;
}