以文本方式查看主题

-  课外天地 李树青  (http://njcie.com/bbs/index.asp)
--  C语言程序设计  (http://njcie.com/bbs/list.asp?boardid=29)
----  [推荐]第一次作业:计算度过的天数  (http://njcie.com/bbs/dispbbs.asp?boardid=29&id=1551)

--  作者:admin
--  发布时间: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;
}