这个函数的功能是计算y年(大于1582年)开始增加d天的增长年份,并把剩余天数保存在全局变量kl中。但是我发现这个函数计算出的kl不稳定,和正确答案有小范围误差,求大佬看看我哪里写错了
int kl = 0 ;
int cntyear(int y, int d) {
cout << y << " + " << d << " day = ";
if(d < cday(y)) return 0 ;
if(d < 1461) {
int tmpd = d ;
for(int i = 0; i < (tmpd / 365); i++)
if(cday(y + i) == 366) d-- ;
return d / 365 ;
}
int ans = d / 1461 * 4 ;
if(ans >= 100) d += ans / 100 ;
d -= (ans / 400) ;
d -= 1461 * (d / 1461) ;
int tmpd = d ;
for(int i = 0; i < (tmpd / 365); i++)
if(cday(y + ans + i) == 366) d-- ;
ans += d / 365 ;
d -= (d / 365) * 365 ;
kl = d ;
cout << ans << "----left " << d << " day ----" << endl ;
return ans ;
}