亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言小程序 如何判斷兩個日期之差

2020-01-26 15:58:45
字體:
來源:轉載
供稿:網友
1.普通的寫法
復制代碼 代碼如下:

#include <stdio.h>
int leapyear(int year)
{
 if((year%4==0 && year%100!=0) || year%400==0)
  return 1;
 else
  return 0;
}
int days(int *day1, int *day2)
{
 int i=0;
 int *tmp;
 int diff = 0;
 const int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 if(day1[0] == day2[0])
 {
  if(day1[1] == day2[1])
  {
   diff = day1[2] - day2[2];
   diff = (diff < 0)?(-diff):diff;
  }
  else
  {
   if(day1[1] < day2[1])    //day1=1991-5-8   day2=1991-6-2
   {
    tmp = day1;      //day1=1991-6-2   day2=1991-5-8
    day1 = day2;
    day2 = tmp;
   }
   for(i=day2[1]+1; i<day1[1]; i++)
   {
    diff +=  month[i];
   }
   diff += month[day2[1]] - day2[2] + day1[2];
   if(day2[1] <= 2 && day1[1] >2)
    if(leapyear(day2[0]))
     diff++;
  }
 }
 else
 {
  if(day1[0] < day2[0])
  {
   tmp = day1; 
   day1 = day2;
   day2 = tmp;
  }
  for(i=day2[0]+1; i<day1[0]; i++)
  {
   if(leapyear(i))
    diff += 366;
   else
    diff += 365;
  }
  for(i=day2[1]+1; i<=12; i++)     //day1=1992-1-1   day2=1991-1-1
  {
   diff += month[i];
  }
  diff += (month[day2[1]] - day2[2]);
  if(day2[1] <= 2)
   if(leapyear(day2[0]))
    diff++;
  for(i=1; i<day1[1]; i++)
  {
   diff += month[i];
  }
  diff += day1[2];
  if(day1[1] > 2)
   if(leapyear(day1[0]))
    diff++;
 }
 return diff;
}
int main()
{
 int day1[3], day2[3];
 int day = 0;
 printf("輸入日期:");
 scanf("%d-%d-%d",&day1[0], &day1[1], &day1[2]);
 printf("輸入另一個日期:");
 scanf("%d-%d-%d",&day2[0], &day2[1], &day2[2]);
 day = days(day1, day2);
 printf("兩個日期之間共有%d天。/n",day);
 return 0;
}

2.利用結構體,代碼更整潔一些
復制代碼 代碼如下:

#include <stdio.h>
typedef struct date
{
 int year;
 int month;
 int day;
}DATE;
int leapyear(int year)
{
 if((year%4==0 && year%100!=0) || year%400==0)
  return 1;
 else
  return 0;
}
int compare(DATE *d1, DATE *d2)    //如果第一個日期比第二個日期大,交換日期
{
 DATE *tmp;
 if(d1->year == d2->year)    //年數相等
 {
  if(d1->month > d2->month)   //月數相等
  {
   tmp = d1;
   d1 = d2;
   d2 = d1;
  }
  else if(d1->month == d2->month)  //日期相等
  {
   if(d1->day > d2->day)
   {
    tmp = d1;
    d1 = d2;
    d2 = d1;
   }
  }
 }
 else if(d1->year > d2->year)
 {
  tmp = d1;
  d1 = d2;
  d2 = tmp;
 }
 return 0;
}
int diff(DATE *date1, DATE *date2)
{
 int i;
 int diff = 0;
 const int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 if(date1->year == date2->year)
 {
  if(date1->month == date2->month)
  {
   diff = date2->day - date1->day;
  }
  else
  {
   for(i=date1->month+1; i<date2->month; i++)
   {
    diff += month[i];
   }
   diff += month[date1->month] - date1->day + date2->day;
   if(leapyear(date1->year))
    if(date1->month <=2 && date2->month >2)
     diff++;
  }
 }
 else
 {
  for(i=date1->year+1; i<date2->year; i++)
  {
   if(leapyear(i))
    diff += 366;
   else
    diff += 365;
  }
  for(i=date1->month+1; i<=12; i++)    //date1距離年末多少天
  {
   diff += month[i];
  }
  diff += month[date1->month] - date1->day;
  if(date1->month <= 2)
   if(leapyear(date1->year))
    diff++;
  for(i=1; i<date2->month; i++)     //date2距離年初多少天
  {
   diff += month[i];
  }
  diff += date2->day;
  if(date1->month > 2)
   if(leapyear(date2->year))
    diff++;
 }
 return diff;
}
int main()
{
 int days = 0;
 DATE day1, day2;
 DATE *date1, *date2;
 date1 = &day1;
 date2 = &day2;
 printf("輸入日期:");
 scanf("%d-%d-%d",&(date1->year), &(date1->month), &(date1->day));
 printf("輸入另一個日期:");
 scanf("%d-%d-%d",&date2->year, &date2->month, &date2->day);
 compare(date1, date2);
 days = diff(date1, date2);
 printf("兩個日期之間共有%d天。/n",days);
 return 0;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级片久久久久久久| 久久久999国产| 亚洲精品一区久久久久久| 综合欧美国产视频二区| 国产精品一区二区性色av| 欧美精品在线免费播放| 狠狠躁夜夜躁人人爽天天天天97| 1769国内精品视频在线播放| 最近2019中文字幕大全第二页| 国产激情视频一区| 国产精品国产三级国产专播精品人| 中国人与牲禽动交精品| 欧美高清视频在线播放| 91精品免费久久久久久久久| 国产精品嫩草视频| 亚洲毛茸茸少妇高潮呻吟| 国产日韩换脸av一区在线观看| 欧美亚洲国产日韩2020| 国产精品美女av| 91亚洲精品一区| 日本成人在线视频网址| 98视频在线噜噜噜国产| 欧美性猛交xxxx久久久| 日韩av有码在线| 另类美女黄大片| 久久伊人色综合| 成人福利网站在线观看11| 精品成人乱色一区二区| 亚洲少妇中文在线| 97国产在线视频| 人人做人人澡人人爽欧美| 国产精品国产自产拍高清av水多| 久久久久久这里只有精品| 国产精国产精品| 亚洲天堂色网站| 久久精品国产精品| 国产精品久久久久久av福利| 久久国产视频网站| 久久久久久网站| 亚洲美女视频网站| 91免费在线视频| 久久影视电视剧免费网站清宫辞电视| 日韩激情av在线免费观看| 欧美日韩激情网| 亚洲人午夜色婷婷| 久久久精品999| 色综合久久中文字幕综合网小说| 亚洲国产欧美一区二区三区同亚洲| 88国产精品欧美一区二区三区| 欧美激情中文字幕乱码免费| 亚洲欧美日韩一区二区三区在线| 91精品国产九九九久久久亚洲| yellow中文字幕久久| 国产亚洲欧美视频| 色播久久人人爽人人爽人人片视av| 久久精品一偷一偷国产| www.亚洲成人| 欧美一级成年大片在线观看| 久久久999精品| 国外成人免费在线播放| 国产精品久久久久久久av大片| 亚洲日本成人女熟在线观看| 亚洲精品狠狠操| 92福利视频午夜1000合集在线观看| 国产精品视频网站| 美日韩精品免费观看视频| 日韩动漫免费观看电视剧高清| 亚洲欧美日韩一区二区在线| 影音先锋欧美在线资源| 中文字幕日韩在线视频| 亚洲精品美女在线| 久久久久久久国产精品视频| 久热精品在线视频| 日日骚av一区| 欧美精品日韩三级| 91精品国产91久久久久久不卡| 日本高清视频一区| 欧美一级淫片aaaaaaa视频| 中文字幕欧美国内| 中文字幕在线看视频国产欧美在线看完整| 成人在线激情视频| 亚洲日本成人网| 91在线免费观看网站| 久久精视频免费在线久久完整在线看| 亚洲乱码一区二区| xxx成人少妇69| 国产免费一区二区三区在线观看| 日韩天堂在线视频| 亚洲天堂成人在线| 欧美日韩国产色视频| 日韩精品在线观看一区二区| 搡老女人一区二区三区视频tv| 国产mv免费观看入口亚洲| 久久久av亚洲男天堂| 懂色av影视一区二区三区| 国产精品久久久久久五月尺| 国产精品www网站| 久久久www成人免费精品| 久久视频在线看| 第一福利永久视频精品| 欧美日韩国产一区二区| 亚洲欧洲自拍偷拍| 97avcom| 国产精品中文字幕在线观看| 欧美激情一区二区三区成人| 在线国产精品播放| 45www国产精品网站| 51视频国产精品一区二区| 国产精品成人av性教育| 亚洲区bt下载| 黄网动漫久久久| 色婷婷av一区二区三区久久| 国产成人免费av电影| 亚洲美女在线看| 亚洲免费视频网站| 亚洲精品一区二区三区婷婷月| 91久久精品视频| 91亚洲精品在线| 日本精品一区二区三区在线| 亚洲精选中文字幕| 精品国内产的精品视频在线观看| 九九精品在线观看| 日韩有码在线观看| 国产精品扒开腿做爽爽爽男男| 欧美最猛黑人xxxx黑人猛叫黄| 欧美激情伊人电影| 欧美黄色片视频| 亚洲精品一区二区三区婷婷月| 国产一区二区三区久久精品| 久久久精品欧美| 91黄色8090| 日韩在线一区二区三区免费视频| 亚洲丝袜一区在线| 欧美视频在线免费看| 亚洲精品中文字幕有码专区| 午夜精品久久久久久久久久久久| 国内久久久精品| 色婷婷av一区二区三区在线观看| 国产精品免费电影| 超碰91人人草人人干| 国产精品久久久亚洲| 成人有码在线播放| 午夜精品视频网站| 琪琪第一精品导航| 欧美又大又粗又长| 性欧美视频videos6一9| 中文字幕亚洲欧美在线| 久久综合久中文字幕青草| 国产日韩中文字幕| 亚洲精品中文字幕av| 成人性教育视频在线观看| 亚洲精品黄网在线观看| 欧美高清一级大片| 日韩欧美视频一区二区三区| 国产精品专区第二| 伊人久久免费视频| 欧美夫妻性生活xx| 永久免费毛片在线播放不卡| 在线日韩中文字幕| 精品久久久久久久久久ntr影视| 国产免费一区二区三区在线能观看| 韩曰欧美视频免费观看| 日韩av色综合| 高清日韩电视剧大全免费播放在线观看|