#include <stdio.h>
struct date
{int m,d;};
long days(struct date d1,struct date d2)
{
int mon[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
if(d1.m<=2 && d2.m>2)
return -1;
long day = 0;
if(d1.m == d2.m)
day = d2.d - d1.d;
else
{
for(int i=d1.m+1;i<d2.m;i++)
day += mon[i];
day += mon[d1.m]-d1.d;
day += d2.d;
}
return day;
}
void main()
{struct date d1,d2,d3;
long td;
printf("first date:");
scanf("%d%d",&d1.m,&d1.d);
printf("second date:");
scanf("%d%d",&d2.m,&d2.d);
if((d1.m > d2.m) || (d1.m==d2.m && d1.d>d2.d))
{
d3 = d1;
d1 = d2;
d2 = d3;
}
td=days(d1,d2);
if(td < 0)
printf("error");
else
printf("%d",td);
}
由于输入没有年份,所以只要两个日期跨2月份,就应该输出error
没有年,2月是固定28天吧