您的位置:首页 > 其它

计算该日在本年中是第几天

2016-12-16 11:57 218 查看

问题及代码:

烟台大学计算机与控制工程学院

作者:毕春超

完成日期:2016年12月16日

题目描述

定义一个结构体变量(包括年、月、日)。编写一个函数days,由主函数将年、月、日传递给函数days,计算出该日在本年中是第几天并将结果传回主函数输出

#include<stdio.h>

struct y_m_d

{

    int year;

    int month;

    int day;

};

int days(struct y_m_d date)

{

    int s,j,f,sum;

    f=29;

    s=30;

    j=31;

if((date.year%4==0 && date.year%100!=0) || date.year%400==0)

        {

            if(date.month==1)

            sum=date.day;

            if(date.month==2)

            sum=j+date.day;

            if(date.month==3)

            sum=j+f+date.day;

            if(date.month==4)

            sum=2*j+f+date.day;

            if(date.month==5)

            sum=2*j+f+s+date.day;

            if(date.month==6)

            sum=3*j+f+s+date.day;

            if(date.month==7)

            sum=3*j+f+2*s+date.day;

            if(date.month==8)

            sum=4*j+f+2*s+date.day;

            if(date.month==9)

            sum=5*j+f+2*s+date.day;

            if(date.month==10)

            sum=5*j+f+3*s+date.day;

            if(date.month==11)

            sum=6*j+f+3*s+date.day;

            if(date.month==12)

            sum=6*j+f+4*s+date.day;

        }

        else

        {

            if(date.month==1)

            sum=date.day;

            if(date.month==2)

            sum=j+date.day;

            if(date.month==3)

            sum=j+f+date.day-1;

            if(date.month==4)

            sum=2*j+f+date.day-1;

            if(date.month==5)

            sum=2*j+f+s+date.day-1;

            if(date.month==6)

            sum=3*j+f+s+date.day-1;

            if(date.month==7)

            sum=3*j+f+2*s+date.day-1;

            if(date.month==8)

            sum=4*j+f+2*s+date.day-1;

            if(date.month==9)

            sum=5*j+f+2*s+date.day-1;

            if(date.month==10)

            sum=5*j+f+3*s+date.day-1;

            if(date.month==11)

            sum=6*j+f+3*s+date.day-1;

            if(date.month==12)

            sum=6*j+f+4*s+date.day-1;

        }

    return sum;

}

int main()

{

    struct y_m_d date;

    int days(struct y_m_d);

    int day_sum;

    scanf("%d%d%d",&date.year,&date.month,&date.day);

    day_sum=days(date);

    printf("%d\n",day_sum);

    return 0;

}

运算结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐