购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 计算某年某月某日是本年度第几天

1.编程说明

在公历的一年中,除2月份以外,每月的天数都是固定的。已知某年某月某日,计算该日子是本年度的第几天,首先判断该年份是否为闰年,求出2月份是28天还是29天;再把已过月份每个月的日子加起来,最后加当月的日期数。sum_day计算输入日期的天数,leap函数返回是否是闰年的信息。

2.程序清单

    /**********************************************************/
    /* 1.c 给出年月日,计算该日是该年第几天?                  */
    /**********************************************************/
    #include<stdio.h>
    void main()
    {
        int sum_day(int,int);
        int leap(int year);
        int year,month,day,days;
        printf("\n");
        printf("请输入所求日期(年(4位),月(2位),日(2位)):");
        scanf("%d,%d,%d",&year,&month,&day);
        printf("%d,%d,%d",year,month,day);
        days=sum_day(month,day);
        if(leap(year)&& month>=3)
          days=days+1;
        printf("是本年第%d天。\n",days);
    }
    int sum_day(int month,int day)
    {
        int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        int i;
        for(i=1;i<=month-1;i++)
           day+=day_tab[i];
       return(day);
    }
    int leap(int year)
    {
        int leap;
        leap=year%4==0 && year%100!=0||year%400==0;
         return(leap);
     }

3.程序运行

【例1.3】给出年月日,计算该日是该年第几天。

解:打开“给出年月日,计算该日是该年第几天”文件夹,双击扩展名为DSW的文件,进入Visual C++ 6.0编译环境,编译程序并执行之,根据屏幕提示,输入年月日,运行结果如下:

由运行结果可见,2016年5月18日是2016年的第139天。 HXAbH04qanOK7s51/AcKzJC7typpVElgFoE0XJEi94zyiWPTmS80MgI/Gg9+eCXB

点击中间区域
呼出菜单
上一章
目录
下一章
×