这个算法很简单,但是不知道为什么这样,所以都只能靠记忆。
函数很简单:四年一闰,百年不全闰,四百年才闰。
bool bIsLeapYear(int iYear)
{
if(iYear%4==0 && iYear%100!=0 || iYear%400==0) return 1;//返回1表示是闰年。
else return 0;
}
附资料:
目前世界通用的公历又叫阳历,它的历年是以地球绕太阳公转一周的“回归年”为依据的。一“回归年”的长度是365.2422天,
即365天5小时48分46秒,为了使用方便,就将365天作为公历平年的一年。这样平均每年要多出5小时48分46秒,累积4年就有23小时15
分4秒,几乎接近一天的时间;如果累积400年,就会多出97天来,久而久之会出现寒暑颠倒,历法会失去实用价值。怎么办呢?唯一
的办法是设置一年的闰年,每逢闰年的就比平年增加一天,成为366天。
那么,公历的闰年是怎么安排的呢?因为每400个平年要多97天来,只得安插97年闰年。因此,经过研究对公历的闰年设置作
出这样的规定:凡非整百的公元纪年年数能被4整除的定为闰年;而整百的公元年分要能被400整除的才能定为闰年。这样每
400年中刚巧是97个闰年。