求某天是一年中的第几天
/*根据日期求这天是这一年的第几天*/
#include <stdio.h>
typedef struct date
{
int year;
int mon;
int day;
}Date;
//判断闰年
int leapyear (int year)
{
if (year%400 == 0 || (year%4 == 0 && year%100 != 0))
return 1;
return 0;
}
int month (int mon, int year)
{
switch (mon)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:return 31;
case 4:
case 6:
case 9:
case 11:return 30;
default :
{
if (leapyear (year)) //二月单独考虑
return 29;
return 28;
}
}
}
int days (int year, int mon, int day)
{
int arr[12];
int i;
int sum = day;
for (i = 1;i < mon; i++)
{
arr[i] = month (i, year);
sum += arr[i]; //月天数相加
}
return sum;
}
int main()
{
printf ("Funtion : Days of Date\n");
Date day1;
scanf ("%d %d %d",&day1.year, &day1.mon, &day1.day);
printf ("DATE : %d %d %d\n",day1.year, day1.mon, day1.day);
int count = days (day1.year, day1.mon, day1.day );
printf ("Count : %d\n",count);
return 0;
}