C语言:计算某年某月某日是这一年的第几天
我是一名在校大学生,初次写博客,希望各位大佬不喜勿喷,这个小程序,仅供参考,希望对大家有所帮助。
分析题意:
1.判断用户输入的年数是闰年还是平年。
2.如何将不同月份的天数相加。
定义:
1.Input()函数,接收用户输入的年月日的值。
2.MonthNum()函数,根据用户输入的年,判断出2月的天数和其他月的天数。
3.Calculate()函数,将月份对应的天数相加。
#include <stdio.h>
//--------------------函数声明
void Input(int *year,int *month,int *day);
void MonthNum(int *Value,int year);
int Calculate(int *Value,int month);
int main()
{
int year,month,day;
Input(&year,&month,&day);
int Value[12]={0};
MonthNum(Value,year);
printf("%d年%d月%d日是这一年中的第%d天!\n",year,month,day,Calculate(Value,month)+day);
return 0;
}
//--------------------输入年月日
void Input(int *year,int *month,int *day)
{
printf("请输入您想知道的年月日:");
scanf("%d %d %d",year,month,day);
}
//--------------------给每个月分配日期
void MonthNum(int *Value,int year)
{
for(int i=0;i<12;i++)
{
int j=i+1;
if((j%2==1 && j<8)||(j%2==0 && j>7))
{
Value[i]=31;
}
else if((j%2==1 && j>8)||(j%2==0 && j>2 && j<7))
{
Value[i]=30;
}
else if(year%4==0 && year%100!=0 || year/400==0)
{
Value[i]=29;
}
else
{
Value[i]=28;
}
}
}
//--------------------计算日期
int Calculate(int *Value,int month)
{
int sum=0;
for(int i=0;i<month-1;i++)
{
sum=sum+Value[i];
}
return sum;
}
/*
//----------样例输入----------
1998 8 25
//----------样例输出----------
1998年8月25日是这一年中的第237天!
*/
希望多多支持!