题解 | #打印日期#
打印日期
http://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b
int main(){
int year;
int k;
int number[] = {31,28,31,30,31,30,31,31,30,31,30,31};
while(scanf("%d %d",&year,&k)!=EOF){
int mouth = 1; //初始月份为1
int date = 0; //初始日为0
if((year%4==0&&year%100!=0)||year%400==0){
number[1] = 29;
}else{
number[1] = 28;
} //判断是否闰年,闰年2月赋值为29天
k = k-number[mouth-1]; //减掉当前月份的天数
while(k>0){ //若大于零,则表示月份可能可以继续加,不能用k>number[mouth]来判断与下一月份的天数大小,因为当mouth为12时,数组会超出下标
mouth++;
k = k-number[mouth-1]; //继续减掉当前月份的天数
}
date = k+number[mouth-1]; //循环退出,说明k<=0,此时再加上月份的天数,date就是日期
printf("%d-%02d-%02d\n",year,mouth,date);
}
}
