是否是闰年判断函数:BOOL IsLeapYear (int year)
/*
按一回归年365天5小时48分45.5秒:
①、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年)
②、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
③、对于数值很大的年份,这年如果能整除3200,并且能整除172800则是闰年。
如172800年是闰年,86400年不是闰年(因为虽然能整除3200,但不能整除172800)(此按一回归年365天5h48'45.5''计算)。
*/
#include <stdio.h>
#include <stdlib.h>
typedef enum
{
FALSE,
TRUE
}BOOL;
BOOL IsLeapYear (int year)
{
#if 0
if ((year % 4) == 0)
{
if ((year % 100) == 0)
{
if ((year % 400) == 0)
{
return TRUE;
}
else
{
return FALSE;
}
}
else
{
return TRUE;
}
}
else
{
return FALSE;
}
#endif
if((year%4==0 && year%100!=0) || year%400==0)
{
printf ("%d:是闰年!!!!!!!!!!!!!\n",year);
return TRUE;
}
else
{
printf ("%d:是平年!!!!!!!!!!!!!\n",year);
return FALSE;
}
}
int main (void)
{
int year=0;
printf ("请输入年份并回车结束: ");
scanf ("%d",&year);
fflush (stdin);
IsLeapYear(year);
return 0;
}