输入年月日判断这是那一年的第几天C语言版

  • Post author:
  • Post category:其他

输入一个日期,包括年、月、日3个数字,计算改日期是该年中的第几天。
输入:2015 5 1
输出:这是该年中第121天

#include <stdio.h>
int main(void)
{
	int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};//将12个月份的天数全部定义出来
	
	int years,months,days,i,j=0,flag = 1;//j作为累加器,flag作为最后输出的判断依据
	
	printf("请输入年月日来判断\n");
	
	scanf("%d%d%d",&years,&months,&days);
	
	if(years%4==0&&years%100!=0||years%400==0)//判断是否为闰年
	{
		a[1] = 29;
	}
	if(months>12||days>31)//当用户输入的程序超出正常范围的,即月份大于12的或天数大于31,不允许输出
	{
		flag = 0;
	}
	for(i=0;i<months-1;i++)//把在输入月份之前的月份天数加起来
	{
		j+=a[i];
	}
	if(flag)//当flag==1,即为真的时候才会输出是第几天
	{
		printf("这是第%d天",j+days);//加上当月的天数,就是我们所求的值
	}
	else
	{
		printf("数据输入错误,请重新输入");
	}
	return 0; 
}

版权声明:本文为xiaotao2333333原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。