#include<stdio.h>
typedef struct
{
int year;
int month;
int day;
}Date;//日期结构体
int Judge_Leap(int year)//判断闰年,1为闰年,反之平年
{
if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
return 1;
else
return 0;
}
/*
1月31,二月28或29,三月31,四月30,五月31,六月30,
七月31,八月31,九月30,十月31,十一月30,十二月31
*/
int Cal_Days(Date date)
{
int i, j, days = 0;
for(i = 1;i <= date.month; i++)
{
if(i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
{
if(i != date.month)
days += 31;
else
for (j = 1;j < date.day; j++)
days++;
}
else if (i == 4 || i == 6 || i == 9 || i == 11)
{
if(i != date.month)
days += 30;
else
for (j = 1;j < date.day; j++)
days++;
}
else if (i == 2)
{
if(Judge_Leap(date.year) == 1)
{
if(i != date.month)
days += 29;
else
for (j = 1;j < date.day; j++)
days++;
}
else
{
if(i != date.month)
days += 28;
else
for (j = 1;j < date.day; j++)
days++;
}
}
}
return days;
}
void main()
{
Date date = {2020,5,4};
int days;
days = Cal_Days(date);
printf("%d年%d月%d日是这一年的%d天",date.year, date.month, date.day, days);
}
学弟问的题目,写完就分享一下吧,有错误请指正。