Code:
#include <stdio.h>
#include <math.h>
void cal_date_diff(int day1,int month1,int year1,int day2,int month2,int year2)
{
int m[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //respective days in month
int d,i=month1+1; //initialising date difference and i
if(month1==2 && ((year1 % 4==0 || year1 % 100==0) && year1 % 400!=0))
d=29-day1;
else
d=m[month1]-day1;
if(year1==year2 && month1==month2)
{
printf("The Difference is %d",abs(day1-day2));
return;
}
if(i==13)
i=1;
while(1)
{
while(i<=12)
{
if(year1==year2 && i==month2) //calculation over since both years same
//and months too
{
d+=day2;
printf("The Difference is %d",d);
return;
}
if(i==2 && ((year1 % 4==0 || year1 % 100==0) && year1 % 400!=0))
//leap year so count 29 days
d+=29;
else
d+=m[i];
i++;
}
i=1;
year1++;
}
over:
}
int main(void)
{
int day1,day2,month1,month2,year1,year2;
day1=30; month1=7; year1=1988;
day2=22; month2=8; year2=1988;
if(year1>year2)
cal_date_diff(day2,month2,year2,day1,month1,year1);
else if(year2>year1)
cal_date_diff(day1,month1,year1,day2,month2,year2);
else
{
if(month1>month2)
cal_date_diff(day2,month2,year2,day1,month1,year1);
else
cal_date_diff(day1,month1,year1,day2,month2,year2);
}
return 0;
}