课外天地 李树青学习天地C语言程序设计 → [推荐]第一次作业:计算度过的天数


  共有10179人关注过本帖树形打印复制链接

主题:[推荐]第一次作业:计算度过的天数

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1939 积分:26594 威望:0 精华:34 注册:2003/12/30 16:34:32
[推荐]第一次作业:计算度过的天数  发帖心情 Post By:2015/9/29 12:58:02 [只看该作者]

 1)简单的:利用年数和365相乘

int main()
{
    int age;
    printf("请输入你的年龄:");
    scanf("%d",&age);
    printf("你已经度过了%d天!",age*365);
    return 0;
}

 

2)考虑下月日的差别
int main()
{
    int age;
    printf("请输入你的年龄:");
    scanf("%d",&age);
    printf("你已经度过了%d天!",age*365+9*30+26);
    return 0;
}

 

3)完整版(精确统计天数,考虑大小月和闰年)
int main()
{
    int days1=getDays(2015,9,26);
    int days2=getDays(1976,10,6);
    printf("你已经度过了%d天!",days1-days2);

    return 0;
}

int getDays(int t_year,int t_month, int t_day)
{
    const int b_year=1900;
    const int b_month=1;
    const int b_day=1;
    int days=((t_year-b_year))*365;

    int year_more=(t_year-b_year)/4;
    if(t_month>2)
        days+=year_more;

    int month_more=(t_month-b_month)*30;
    days+=month_more;

    if(t_month==2||t_month==6||t_month==7)
    {
        days+=1;
    }
    if(t_month==3)
    {
        days-=1;
    }
    if(t_month==8)
    {
        days+=2;
    }
    if(t_month==9||t_month==10)
    {
        days+=3;
    }
    if(t_month==11||t_month==12)
    {
        days+=4;
    }
    days+=t_day-1;
    return days;
}


 回到顶部