date calculation

Hi...

I need to count the number of days between 2 dates.
From a previous example in the notes I managed to come up with the following code which gives you the number of days but first converting the date to a julian date. Is there any other way of doing this? Plus...how do I go about if I want it to specify the exact number of years, months and days? Any ideas? Just ideas?Thanx.

Code:
```void read_date(int *dd, int *mm, int *yyyy) {
int i;

while(1) {

printf("Enter date (DD MM YYYY): ");
i = scanf("%d %d %d", dd, mm, yyyy);

if(i == 3) {
if((*mm < 1) || (*mm > 12)) {
printf("MM must be between 1 and 12\n");
continue;
}
if((*dd < 1) || (*dd > days_month[*mm-1])) {
printf("DD must be between 1 and %d for the month of %s\n", days_month[*mm-1], months[*mm-1]);
continue;
}
if((*yyyy < 1) || (*yyyy > 9999)) {
printf("YYYY must be between 0 and 9999\n");
continue;
}

} else {
continue;
}

break;
}

}

int leap_year(int yyyy)
{
return((yyyy % 400 == 0) || (yyyy % 4 == 0 && yyyy % 100 != 0));
}

int convert_to_jdate(int dd, int mm, int yyyy)
{
int total_days = 0;

if (yyyy < 1) return -1;

total_days =  (yyyy-1) * 365;

total_days += (yyyy-1) / 4;

total_days -= (yyyy-1) / 100;

total_days += (yyyy-1) / 400;

total_days += cumulative_days[mm-1];

total_days += dd;

if(leap_year(yyyy))

if (mm > 2)
total_days++;

return total_days;
}

/*********************************************************************************************************/

void date()
{

int dd1, mm1, yyyy1;
int dd2, mm2, yyyy2;

int t1, t2, t_total;

read_date(&dd1, &mm1, &yyyy1);
read_date(&dd2, &mm2, &yyyy2);

t1 = convert_to_jdate(dd1, mm1, yyyy1);
t2 = convert_to_jdate(dd2, mm2, yyyy2);

t_total = t1 - t2;
if(t_total < 0) {
t_total *= -1;
}

printf("There are %d day(s) between the two dates\n", t_total);

return;
}```
[code tags added by ygfperson]