c 计算同一年两个日期相隔天数

img


我想计算两个日期之间相差的天数,问题是为什么我的for循环不能转换月份的时间,导致我只能算出天数的差
如 3月20 和4月30
我的导出是10
月份循环不行,求大神教,我才刚学c没多久
求指点

if(a == c)少一个等于号

共三个位置,已标注在注释中


#include<stdio.h>

int main(void)
{
    int a,b,c,d,i;
    long sum = 0;
    printf_s("开始日期");
    scanf_s("%d %d",&a,&b);
    printf_s("结束日期");
    scanf_s("%d %d",&c,&d);
    if (a == c)              // a=c ->a==c    
        sum = d - b;
    if(a<c){                // a>c -> a<c
        for(i=a;i<c;i++)
        {
            if((i == 1)||(i==3)||(i==5)||(i==7)||(i==8)||(i==10)||(i==12))    sum +=31;
            else if((i==2))    sum +=28;
            else if((i==4)||(i==6)||(i==9)||(i==11))    sum +=30;            // if
        }
        sum = sum+d-b;
    }
    printf("%d",sum);
    return 0;

}