//第一个结构体变量(包括年、月、日)。计算该日是本年的第几天,应该注意闰年的问题
//第一个结构体变量(包括年、月、日)。计算该日是本年的第几天,应该注意闰年的问题
#include
#include
#include
typedef struct
{
int year;
int month;
int day;
//bool stage;//1表示该年为闰年,0表示这一年为平年
}Tdate;
int leap_year(int year)//判断一年是不是闰年
{
if(year%4==0&&year%100!=0||year%400==0)
{
printf("%d年为闰年\n",year);
return 1;//闰年返回1
}
else
{
printf("%d年为平年\n",year);
return 0;//平年返回0
}
}
int countdays(int year,int month,int day)
{
int date[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int countday=0;
int i;
if(leap_year(year)==1)//如果这一年为闰年
{
if(month<3)
{ for(i=0;i
{
countday=countday+date[i];
}
return countday+day;
}
else
{ for(i=0;i
{
countday=countday+date[i];
}
return countday+day+1;
}
}
else//这年为平年
{
for(i=0;i
{
countday=countday+date[i];
}
return countday+day;
}
}
void Init(Tdate *date)//赋初值
{
date->year=0;
date->month=0;
date->day=0;
}
void init(Tdate *date)
{
int year,month,day;
printf("请输入你要出查询的日期:");
scanf_s("%d%d%d",&year,&month,&day);
date->year=year;
date->month=month;
date->day=day;
//Tdate.stage=leap_yaer(Tdate.year);
}
int main()
{
int count;
Tdate date;
Init(&date);
init(&date);
count=countdays(date.year,date.month,date.day);
printf("%d年%d月%d日是这年的第%d天\n",date.year,date.month,date.day,count);
system("pause");
return 0;
}
输出结果:
}