[C语言函数]
int count_months(DATE start, DATE end)
{
int years = 0, months = 0;
DATE r;
if (cmp_date(start,end) > 0){
r = start; start = end; end = r;
}
years = end.year - start.year;/*计算年数*/
r = start;
r.year = end.year;
if (cmp_date(r,end) > 0) {/*修正年数*/
(1);
r.year--;
}
if (r.year < end.year) { /*跨年度时,先计算到 12 月的月份数*/
months =(2);
r.month = 12;
}
months += (end.month + 12 - r.month) % 12;
r.year = end.year;r.month = end.month;
makevalid( (3) ); /*将日期 r 修正为有效日期*/
if (cmp_date(r,end) > 0) /*修正月份数*/
(4) ;
months +=(5) ; /*计算总月份数*/
return months;
}