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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.