**
求任意两天的天数差
**
第二个函数调用了第一个函数,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;
}
来源:CSDN
作者:余二川
链接:https://blog.csdn.net/qq_45437968/article/details/103588764