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

1.4 求指定日期距离1990年1月1日的天数

1.编程说明

已知某年某月某日,计算该日子距离1990年1月1日的天数,由两部分组成,一是已知年到1990年是几年并算出这些年的天数之和,二是算出已知月已知日距当年1月1日的天数,这两部分天数之和即为所求。

2.程序清单

   /*****************************************************************/
   /*1.c指定年月日求距离1990年1月1日的天数及小时数*/
   /*****************************************************************/
   #include<stdio.h>
   typedef struct date{
        int year;
        int month;
        int day;
       }DATE;
   int countday(DATE);
   int runyear(int);
   void main()
   {
        DATE today;
        int totalday;
        printf("请输入指定年月日(yyyy,mm,dd):");
        scanf("%d,%d,%d",&today.year,&today.month,&today.day);
        totalday=countday(today)-1;
        printf("总天数是%d天。\n",totalday);
        printf("总小时数是%d。\n",24*totalday);
   }
   int countday(DATE currentday)
   {
       int permonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
       int totalday=0,year,i;
       for(year=1990;year<currentday.year;year++)
       {
           if(runyear(year))
           totalday=totalday+366;
           else
           totalday=totalday+365;
       }
      if(runyear(currentday.year))
      permonth[2]+=1;
      for(i=0;i<currentday.month;i++)
      totalday+=permonth[i];
      totalday+=currentday.day;
      return(totalday);
   }
   int runyear(int year)
   {
      if((year%4==0 && year%100!=0)||(year%400==0))
      return 1;
      else
      return 0;
   }

3.程序运行

【例1.4】指定年月日求距离1990年1月1日的天数及小时数。

解:打开“指定年月日求距离1990年1月1日的天数及小时数”文件夹,双击扩展名为DSW的文件,进入Visual C++ 6.0编译环境,编译程序并执行,根据屏幕提示,输入年月日,运行结果如下:

由运行结果可见,1990年1月1日到2016年5月19日共有9635天或231240小时。 HXAbH04qanOK7s51/AcKzJC7typpVElgFoE0XJEi94zyiWPTmS80MgI/Gg9+eCXB

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