C語言:計算某年某月某日是這一年的第幾天
阿新 • • 發佈:2019-01-05
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天!
*/
希望多多支援!