求任意两天的天数差

女生的网名这么多〃 提交于 2019-12-20 10:16:51

**

求任意两天的天数差

**
第二个函数调用了第一个函数,Dev C++编译过不了,应该怎么办,哪位哥帮忙解答一下

#include<stdio.h>
#include<stdlib.h>
typedef struct D{
 int year;
 int month;
 int day;
}Date;
int GetYear(int year){
 if(year % 4==0 && year % 100!=0 ||year % 400==0)
  return 29;
 else
  return 28;
} 
int Getmonth(int month){
 switch(month){
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12:
   return 31;
  case 2:
   return GetYear(year);
  case 4:
  case 6:
  case 9:
  case 11:
   return 30;
  default:
   return -1;
 }
}
int Getday(Date date1,Date date2){
 int day=0;
 int days;
 if(date1.year==date2.year && date1.month==date2.month && date1.day==date2.day)
  return 0;
 else if(date1.year==date2.year && date1.month==date2.month){
  days=date2.day-date1.day;
  return days;
 }
 else if(date1.year==date2.year){
  int maxday=Getmonth(date1.year,date1.month);
  int days=maxday-date1.day; //算出本月份剩余天数 
  
  if(date2.month==date1.month+1){//相邻月份 
   days=days+date2.day;
  }
  else{
   int m=date2.month;
   int n=date1.month+1; //从下一个月开始计算整月份 
   if(n!=m){
    days=days+Getmonth(n);
    n++;
   }
   days=days+date2.day;
   return days;
  }
 }
}
int main(){
 int days;
 Date start,end;
 printf("input start_date:");
 scanf("%d %d %d",&start.year,&start.month,&start.day);
 printf("input end_date:");
 scanf("%d %d %d",&end.year,&end.month,&end.day);
 days=Getday(start,end);
 printf("diff is %d\n",days);
 return 0;
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!