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

Do Not Use Arrays/Strings/Pointers Its a C Program; do not post any other langua

ID: 3538617 • Letter: D

Question

Do Not Use Arrays/Strings/Pointers


Its a C Program; do not post any other languages.


Have to use User Defined functions. Use Slection/Loops/If/Else Statements.


Will award full points if I get the code.


Problem: Given the month, year, and day of two dates (all as integer values) determine the number of days between the first and second date. Inform the user if the date (month, day) entered is invalid and force them to enter a valid date.

Additional Notes:

Assume the user will only enter years in the range from 1800 %u2013 2013 and that the first date will never be AFTER the second date.

Helpful formulas can be found on page 300 of your C programming text.


NOTE: USER-DEFINED FUNCTIONS ARE REQUIRED FOR THIS ASSSIGNMENT.

Example Execution #4:

Example Execution #5:

Example Execution #6:

Example Execution #7:

Example Execution #8:

Explanation / Answer

#include <stdio.h>

#include <stdlib.h>




int date(int year, int month, int day) {

int a = (14 - month) / 12;

int y = year + 4800 - a;

int m = month + 12 * a - 3;

if (year > 1582 || (year == 1582 && month > 10) || (year == 1582 && month == 10 && day >= 15))

return day + (153 * m + 2) / 5 + 365 * y + y / 4 - y / 100 + y / 400 - 32045;

else

return day + (153 * m + 2) / 5 + 365 * y + y / 4 - 32083;

}


int main() {

int year1, month1, day1;

int year2, month2, day2;

int date1, date2;

int difference,d,d2;

  


printf(" Enter data for date #1");

do

{

printf(" Enter the month(1-12):");

scanf("%d",&month1);

if(month1<1 || month1>12)

{

printf(" Invalid Month.. Please try Again");

}

}while(month1<1 || month1>12);

  

  

printf(" Enter the year:");

scanf("%d",&year1);

  

do

{

printf(" Enter day(1-31):");

scanf("%d",&day1);

if(day1<1 || day1>31)

{

printf(" Invalid Day.. Please try Again");

}

}while(day1<1 || day1>31);

  

printf(" Enter data for date #2");

  

do

{

printf(" Enter the month(1-12):");

scanf("%d",&month2);

if(month2<1 || month2>12)

{

printf(" Invalid Month.. Please try Again");

}

}while(month2<1 || month2>12);

  

printf(" Enter the year:");

scanf("%d",&year2);

  

do

{

printf(" Enter day(1-31):");

scanf("%d",&day2);

if(day2<1 || day2>31)

{

printf(" Invalid Day.. Please try Again");

}

}while(day2<1 || day2>31);

  


date1 = date(year1, month1, day1);

date2 = date(year2, month2, day2);


difference = abs(date2 - date1);

  

switch(month1)

{

case 1: if (year1%4==0 || year1%400==0 || year1%100==0)

{

d=day1;

printf(" January %d, %d is day number: %d",day1,year1,d);

}

else

{

d=day1;

printf(" January %d, %d is day number: %d",day1,year1,d);

}

break;

case 2: if (year1%4==0 || year1%400==0 || year1%100==0)

{

d=31+day1;

printf(" February %d, %d is day number: %d",day1,year1,d);

}

else

{

d=31+day1;

printf(" February %d, %d is day number: %d",day1,year1,d);

}

break;

case 3:if (year1%4==0 || year1%400==0 || year1%100==0)

{

d=60+day1;

printf(" March %d, %d is day number: %d",day1,year1,d);

}

else

{

d=59+day1;

printf(" March %d, %d is day number: %d",day1,year1,d);

}

break;

case 4:if (year1%4==0 || year1%400==0 || year1%100==0)

{

d=91+day1;

printf(" April %d, %d is day number: %d",day1,year1,d);

}

else

{

d=90+day1;

printf(" April %d, %d is day number: %d",day1,year1,d);

}

break;

case 5:if (year1%4==0 || year1%400==0 || year1%100==0)

{

d=121+day1;

printf(" May %d, %d is day number: %d",day1,year1,d);

}

else

{

d=120+day1;

printf(" May %d, %d is day number: %d",day1,year1,d);

}

break;

case 6:if (year1%4==0 || year1%400==0 || year1%100==0)

{

d=152+day1;

printf(" June %d, %d is day number: %d",day1,year1,d);

}

else

{

d=151+day1;

printf(" June %d, %d is day number: %d",day1,year1,d);

}

break;

case 7:if (year1%4==0 || year1%400==0 || year1%100==0)

{

d=182+day1;

printf(" July %d, %d is day number: %d",day1,year1,d);

}

else

{

d=181+day1;

printf(" July %d, %d is day number: %d",day1,year1,d);

}

break;

case 8:if (year1%4==0 || year1%400==0 || year1%100==0)

{

d=213+day1;

printf(" August %d, %d is day number: %d",day1,year1,d);

}

else

{

d=212+day1;

printf(" August %d, %d is day number: %d",day1,year1,d);

}

break;

case 9:if (year1%4==0 || year1%400==0 || year1%100==0)

{

d=244+day1;

printf(" September %d, %d is day number: %d",day1,year1,d);

}

else

{

d=243+day1;

printf(" September %d, %d is day number: %d",day1,year1,d);

}

break;

case 10:if (year1%4==0 || year1%400==0 || year1%100==0)

{

d=274+day1;

printf(" October %d, %d is day number: %d",day1,year1,d);

}

else

{

d=273+day1;

printf(" October %d, %d is day number: %d",day1,year1,d);

}

break;

case 11:if (year1%4==0 || year1%400==0 || year1%100==0)

{

d=305+day1;

printf(" November %d, %d is day number: %d",day1,year1,d);

}

else

{

d=304+day1;

printf(" November %d, %d is day number: %d",day1,year1,d);

}

break;

case 12:if (year1%4==0 || year1%400==0 || year1%100==0)

{

d=335+day1;

printf(" December %d, %d is day number: %d",day1,year1,d);

}

else

{

d=334+day1;

printf(" December %d, %d is day number: %d",day1,year1,d);

}

break;

default:break;

}

switch(month2)

{

case 1: if (year2%4==0 || year2%400==0 || year2%100==0)

{

d2=day2;

printf(" January %d, %d is day number: %d",day2,year2,d2);

}

else

{

d2=day2;

printf(" January %d, %d is day number: %d",day2,year2,d2);

}

break;

case 2: if (year2%4==0 || year2%400==0 || year2%100==0)

{

d2=31+day2;

printf(" February %d, %d is day number: %d",day2,year2,d2);

}

else

{

d2=31+day2;

printf(" February %d, %d is day number: %d",day2,year2,d2);

}

break;

case 3:if (year2%4==0 || year2%400==0 || year2%100==0)

{

d2=60+day2;

printf(" March %d, %d is day number: %d",day2,year2,d2);

}

else

{

d2=59+day2;

printf(" March %d, %d is day number: %d",day2,year2,d2);

}

break;

case 4:if (year2%4==0 || year2%400==0 || year2%100==0)

{

d2=91+day2;

printf(" April %d, %d is day number: %d",day2,year2,d2);

}

else

{

d2=90+day2;

printf(" April %d, %d is day number: %d",day2,year2,d2);

}

break;

case 5:if (year2%4==0 || year2%400==0 || year2%100==0)

{

d2=121+day2;

printf(" May %d, %d is day number: %d",day2,year2,d2);

}

else

{

d2=120+day2;

printf(" May %d, %d is day number: %d",day2,year2,d2);

}

break;

case 6:if (year2%4==0 || year2%400==0 || year2%100==0)

{

d2=152+day2;

printf(" June %d, %d is day number: %d",day2,year2,d2);

}

else

{

d2=151+day2;

printf(" June %d, %d is day number: %d",day2,year2,d2);

}

break;

case 7:if (year2%4==0 || year2%400==0 || year2%100==0)

{

d2=182+day2;

printf(" July %d, %d is day number: %d",day2,year2,d2);

}

else

{

d=181+day2;

printf(" July %d, %d is day number: %d",day2,year2,d2);

}

break;

case 8:if (year2%4==0 || year2%400==0 || year2%100==0)

{

d2=213+day2;

printf(" August %d, %d is day number: %d",day2,year2,d2);

}

else

{

d2=212+day2;

printf(" August %d, %d is day number: %d",day2,year2,d2);

}

break;

case 9:if (year2%4==0 || year2%400==0 || year2%100==0)

{

d2=244+day2;

printf(" September %d, %d is day number: %d",day2,year2,d2);

}

else

{

d2=243+day2;

printf(" September %d, %d is day number: %d",day2,year2,d2);

}

break;

case 10:if (year2%4==0 || year2%400==0 || year2%100==0)

{

d2=274+day2;

printf(" October %d, %d is day number: %d",day2,year2,d2);

}

else

{

d2=273+day2;

printf(" October %d, %d is day number: %d",day2,year2,d2);

}

break;

case 11:if (year2%4==0 || year2%400==0 || year2%100==0)

{

d2=305+day2;

printf(" November %d, %d is day number: %d",day2,year2,d2);

}

else

{

d2=304+day2;

printf(" November %d, %d is day number: %d",day2,year2,d2);

}

break;

case 12:if (year2%4==0 || year2%400==0 || year2%100==0)

{

d2=335+day2;

printf(" December %d, %d is day number: %d",day2,year2,d2);

}

else

{

d2=334+day2;

printf(" December %d, %d is day number: %d",day2,year2,d2);

}

break;

default:break;

}

printf(" The difference between the two dates in days is:%d ",difference);


return 0;

}




Output: http://ideone.com/cdqljH

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