Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Ok, my book said I can use the following formula to calculate the days between t

ID: 3641358 • Letter: O

Question

Ok, my book said I can use the following formula to calculate the days between two dates.

N = 1461 x f(year, month) / 4 + 153 g(month /5 + day

where

f(year,month) = year-1 if month <=2
year otherwise

g(month) month + 13 if month <=2
month + 1 otherwise

But then it saids this formula only works for dates after March 1, 1900( 1 must be added for dates form March 1, 1800 to February 28, 1900 and 2 must be added for dates between March 1, 1700 to February 28, 1800

Now I have to write a program that permits the user to type in two dates and then calculates the number of elapsed days.

Ok this is what I have so far.

#include <stdio.h>


int main () {

struct date {
int month;
int day;
int year;
};

struct date d1, d2, N, N1, N2, x;
int daynumber(struct date d);
int elapsedDays;
int days_between(struct date d1, struct date d2);

printf ("Enter date 1 (MM/DD/YYYY): ");
scanf ("%d/%d/%d", &d1.month, &d1.day, &d1.year);
printF(" ");

if ( d1.month <= 2 )
//suppose to be something with f(year, month).
// if( month <= 2){
// f(year, month) = year - 1; g(month) = month + 13;
{
int year = d1.year - 1;
int month = d1.month + 13;
}
else
{
year = d1.year;
month = d1.month + 1;
}

printf ("Enter date 2 (MM/DD/YYYY): ");
scanf ("%d/%d/%d", &d2.month, &d2.day, &d2.year);
printF(" ");

if ( d2.month <= 2 )
{
year = d2.year - 1;
month = d2.month + 13;
?}
else
{
year = d2.year;
month = d2.month + 1;
}
if( d1 >= 03/01/1800 && d1 <= 02/28/1900)
{
N = N+1;
}
else if( d1 >= 03/01/1700 && d1 <= 02/28/1800)
{
N = N+2;
}
if( d2 >= 03/01/1800 && d2 <= 02/28/1900)
{
N = N+1;
}
else if( d2 >= 03/01/1700 && d2 <= 02/28/1800)
{
N = N+2;
}
// Computes N
int daynumber(struct date d)
{
N1 = 1461 * f(d1.year,d1.month) / 4 + 153 * g(d1.month) / 5 + d1.day;
N2 = 1461 * f(d2.year,d2.month) / 4 + 153 * g(d2.month) / 5 + d2.day;
}

// Computes elapsed days between two dates
int days_between(struct date d1, struct date d2)
{
elapsedDays = N2 - N1;

return elapsedDays;
}

// Function to determine if date d is before date x
int isbefore(struct date d, struct date x);
int isbefore(struct date d, struct date x)
{

if ( d < x )
x = 1;

else
x = 0;
return x;
}

printf ("There are %d days between %d/%d/%d and %d/%d/%d",
elapsedDays, d1.month, d1.day, d1.year, d2.month, d2.day, d2.year);
printF(" ");

return 0;
}

I can not get pass compiling the Program.

Any help will be appreciated, Thanks, Bill

Explanation / Answer

i am tried to debug your code but it is not written properly. first read how to write a c program. like how to write function in c. you have written functions in main itself and you declared the data structure also in main. you should keep track of like who is local varibale and who is global. first read slandered examples on how to write function in c and on data structure.then try to code

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote