题解 | #打印日期#

打印日期

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);
	}
}
全部评论

相关推荐

12-18 19:36
已编辑
门头沟学院 Java
程序员牛肉:可以的,简历没毛病了。 虽然还是偏向同质化,不过学历不错。后续我觉得重心放到刷实习+摆脱同质化问题上
实习简历求拷打
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务