//写一个函数days,实现主函数将年、月、日(结构体类型)传递给days函数,days函数计算该年该月该日是该年的第几天并传回主函数输出。
//程序的运行示例如下:
//请输入日期(年,月,日)
//1990,2,14
//2月14日是1990年的第45天。
//
//输入格式:
//"请输入日期(年,月,日)\n"
//"%d,%d,%d"
//输出格式:
//"\n%d月%d日是%d年的第%d天。"
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 100
typedef struct date
{
int year;
int month;
int day;
} DATE;
int days(DATE a);
int main()
{
printf("请输入日期(年,月,日)\n");
DATE a;
scanf("%d,%d,%d",&a.year,&a.month,&a.day);
int n;
n=days(a);
printf("\n%d月%d日是%d年的第%d天。",a.month,a.day,a.year,n);
return 0;
}
int days(DATE a)
{
int month1[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
int month2[12]= {31,29,31,30,31,30,31,31,30,31,30,31};
if((a.year%4==0&&a.year%100!=0)||a.year%400==0)
{
int k=0;
for(int i=0; i<12; i++)
{
if(i<a.month-1)
{
k+=month2[i];
}
}
k+=a.day;
return k;
}
else
{
int k=0;
for(int i=0; i<12; i++)
{
if(i<a.month-1)
{
k+=month1[i];
}
}
k+=a.day;
return k;
}
}