阳历也就是公历,它是国际通用的。阳历以地球绕太阳转一圈的时间定做一年,共365天5小时48分46秒, 则365.2422天,平年只计365天这个整数,不计尾数;一年分做12个月,大月31天,小月30天,二月只有28天。四年的尾数积累起来共1天光景,加在第四年的二月里,这一年叫做闰年。所以闰年的二月有29天。
制定历法的目的是为了年和月同步,以方便计算日期,所以只要抓住要点——地球绕太阳一周(一年)需要365.2422天,公历的算法就可以大大的简化,
如判断该年是否闰年:
BOOL IsLeapYear(int year)
{
double t= ABS(year)* REMAIN_DAY;
return DECIMAL_PART(t)> 0.7; //如积累的剩余天数大于0.7, year就是闰年,2月要加上一天
}
计算两个年份的间隔天数:
int Days(int y1, int y2)
{
return (y1- y2)* 365.2422;
}