1.使用函数计算该年是平年还是闰年,闰年是4的倍数不是100的倍数,为400倍数的年份被称为“世纪闰年”,闰年返回‘1’,平年返回‘0’。
2.计算该年过去了多少天,平年和闰年的二月天数不同。
3.计算该年还剩多少天。
int Isleepyear(int year)
{
int ret = 0;
if((0== year % 4 && year %100 != 0) || (year % 400 ==0))
{
ret = 1;
}
return ret;
}
int Getdayofyear(int year,int mon, int day)
{
int i = 0;
int sum = 0;
int tmp = 0;
tmp = Isleepyear(year);
for(i = 0; i < mon ; i++)
{
if(1 == i || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12 )
{
sum += 31;
}
else if(i == 4 || i == 6 || i == 9 || i == 11)
{
sum += 30;
}
else if(i == 2&& tmp ==1 )
{
sum +=29;
}
else if(i == 2 && tmp !=1)
{
sum +=28;
}
}
return sum + day;
}
int Getleftdayofyear(int year,int mon, int day)
{
int ret = 0;
int tmp = Isleepyear(year);
int M = 0;
M = Getdayofyear(year,mon,day);
if(1 == tmp)
{
ret = 366 - M;
}
else
{
ret = 365 - M;
}
return ret;
}
#include<stdio.h>
int main(void)
{
int a = 0;
int b = 0;
int c = 0;
int year = 0;
int mon = 0;
int day = 0;
scanf("%d%d%d",&year,&mon,&day);
a = Isleepyear( year);
b = Getdayofyear( year, mon, day);
c = Getleftdayofyear( year, mon, day);
printf("Isleepyear = %d\n Getdayofyear = %d\n Getleftdayofyear = %d\n ",a,b,c);
return 0;
}
4.运行结果