久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12093|回復: 0
收起左側

c語言 查詢任意兩個日期之間相差的天數

[復制鏈接]
ID:85764 發表于 2015-7-15 23:08 | 顯示全部樓層 |閱讀模式
  1. #include <stdio.h>
  2. #include <math.h>
  3. int Year1 ;
  4. int Month1 ;
  5. int Day1 ;
  6. int Year2 ;
  7. int Month2 ;
  8. int Day2 ;
  9. int MonthDays[] = {31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31} ;

  10. char IsLeapYear(int Year)
  11. {
  12.     if((Year % 4 == 0 && Year % 100 != 0) || Year % 400 == 0)
  13.     {
  14.         return 1 ;
  15.     }
  16.     else
  17.     {
  18.         return 0 ;
  19.     }
  20. }
  21. int GetMidMonthDays(int m1 , int m2, int y)
  22. {
  23.     int i ;
  24.     int ds ;
  25.     ds = 0 ;
  26.     for(i = m1 + 1 ; i < m2 ; i++)
  27.     {
  28.         ds += MonthDays[i-1] ;
  29.         if(i == 2)
  30.         {
  31.             if(IsLeapYear(y))
  32.             {
  33.                 ds++ ;
  34.             }
  35.         }
  36.     }
  37.     return ds ;
  38. }
  39. int GetSameYearDays(int y1 , int m1 , int d1 , int y2 , int m2 , int d2)
  40. {
  41.     int Days ;
  42.     //如果月份相同
  43.     if(m1 == m2)
  44.     {
  45.         Days =abs(d2 - d1)  ;
  46.     }
  47.     else
  48.     {
  49.         //計算第一個月份的天數
  50.         Days = abs(MonthDays[m1 - 1] - d1) ;
  51.         if(m1 == 2)
  52.         {
  53.             if(IsLeapYear(y1))
  54.             {
  55.                 Days++ ;
  56.             }
  57.         }
  58.         if((m1 + 1) != m2)
  59.         {
  60.             //計算中間月份的天數
  61.             Days += GetMidMonthDays(m1 , m2, y1);
  62.         }
  63.         Days += d2 ;
  64.     }
  65. return Days;
  66. }
  67. int GetMidYearDays(int y1,int y2)
  68. {
  69. int days=0;
  70. int i=0;
  71. for (i=y1+1;i<y2;i++)
  72. {
  73.   if (IsLeapYear(i-1))
  74.   {
  75.    days+=366;
  76.   }
  77.   else
  78.    days+=365;
  79. }
  80. return days;
  81. }
  82. int GetDifferentYearDays(int y1 , int m1 , int d1 , int y2 , int m2 , int d2)
  83. {
  84. int days;
  85. if (y1==y2)
  86. {
  87.   days=GetSameYearDays( y1 ,m1 ,d1 , y2 , m2 ,d2);
  88. }
  89. else
  90. {
  91.   days=MonthDays[m1+1]-d1;
  92.   if((y1+1) != y2)
  93.   {
  94.    days+=GetMidYearDays(y1,y2);
  95.   }
  96.   days+=GetMidMonthDays(m1-1,13,y1);
  97.   if(m2==1)
  98.   {
  99.    days+=d2;
  100.   }
  101.   else
  102.   {
  103.    days+=GetMidMonthDays(1,m2,y2);
  104.    days+=d2;
  105.   }  
  106. }
  107. return days;
  108. }
  109. void main(void)
  110. {
  111.     int Days ;
  112.     for(; ;)
  113.     {
  114.         printf("請輸入第一個日期(年 月 日):\n");
  115.         scanf("%d%d%d" , &Year1 , &Month1 , &Day1);
  116.         printf("請輸入第二個日期(年 月 日):\n");
  117.         scanf("%d%d%d" , &Year2 , &Month2 , &Day2);
  118.         //假定第一個日期小于第二個日期
  119.         Days = GetDifferentYearDays(Year1 , Month1 , Day1 , Year2 , Month2 , Day2);
  120.         printf("兩個日期相差的天數為:%d\n" , Days);
  121.     }
  122. }
復制代碼


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品综合久久久 | 欧美福利网站 | 久久久久一区二区三区 | 国产一区精品 | 91麻豆精品国产91久久久更新资源速度超快 | 超碰网址 | 色综合久久久久 | 欧美精品一区免费 | 久久精品国产免费一区二区三区 | 亚洲综合色视频在线观看 | 午夜精品一区二区三区在线观看 | 精品久久久久久 | 亚洲视频在线一区 | 欧美一级在线免费 | 国产高清视频 | 午夜欧美| 91看片视频 | 玖玖国产精品视频 | 亚洲一区二区视频 | 91极品尤物在线播放国产 | 亚洲精品日韩在线观看 | 亚洲一区二区三区四区av | 久久成人人人人精品欧 | 岛国在线免费观看 | 欧美精品1区2区3区 免费黄篇 | 五月精品视频 | 欧美一区二区三区在线播放 | 91在线看视频 | 亚洲欧美激情精品一区二区 | 久久久精品国产 | 一区二区精品 | 香蕉视频黄色 | 国产精品日韩欧美一区二区三区 | 91视视频在线观看入口直接观看 | 久久精品国产亚洲 | 日韩福利在线观看 | 久久久天天 | 欧美日韩亚洲视频 | 欧美激情a∨在线视频播放 成人免费共享视频 | 99精品视频免费观看 | 99伊人网|