编写一个程序输入一个人出生年月日和当前日期,计算出他的年龄和距离下一生日的的天数 5

是关于C语言学习的... 是关于C语言学习的 展开
 我来答
supersarah
2011-04-16 · TA获得超过7151个赞
知道大有可为答主
回答量:2623
采纳率:80%
帮助的人:1218万
展开全部
用万年历算法, y, m, d 分别表示年月日

int getDay ( int y, int m, int d )
{
static int dm [] = { 333, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 303 };
y += (m-1)/12;
m %=12;
// 计算闰年
if ( !(y%400) ) r = 1; else if ( !(y%100) ) r = 0; else if ( !(y%4) ) r = 1; else r = 0;
if ( r && (1 != m) && (2 != m) ) d ++; // 处理闰年二月后日期
y --;

return (y*365 + dm [ m ] + d + y/4 - y/100 + y/400);
}

int yCalc ( int y, int m, int d, int y0, int m0, int d0 ) // 年龄
{
return ( getDay (y, m, d) - getDay (y0, m0, d0) ) / 365;
}

int dCalc ( int y, int m, int d, int y0, int m0, int d0 ) // 天数
{
int d1, d2;
d1 = getDay ( y, m0, d0 ); // 今年生日
d2 = getDay ( y, m, d ); // 今天
if (d1<d2) d1 = getDay ( y+1, m0, d0 ) // 今年生日过去了, 算明年生日
return d1 - d2;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式