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

Many computer applications, such as Microsoft Excel, can compare date values tha

ID: 3748940 • Letter: M

Question

Many computer applications, such as Microsoft Excel, can compare date values that occur after January 1, 1900. For example, these programs can determine if 06/06/99 is less than (comes before) 11/01/00. They use January 1, 1900 as their reference point. This becomes day 1. All other dates are calculated as to the number of days they are relative to January 1, 1900. For example January 2, 1900 is equal to 2. October 31, 2000 is equal to 36829. Notwithstanding, Excel cannot tell you which day of the week these two dates fell on For this assignment, you are to write a C++ program which will 1. Have the User enter in a date 2. Calculate the "day value" of that date. For this you will need to write several functions as stated below ) A function that determines if a year is a leap year b) A function that determines the number of days in a month. Remember if the year is a leap year then February has 29 days. You will need the leap year function. This is an example of a function calling another function. function uses the days in month function. write another function that prints the day of the week that date fell on c) A function that determines the number of days in the year of the date in question. This d) Based on the "day value" of the date, and the fact that January 1, 1900 was Monday Ex. For 10/31/2000 you need to calculate the number of days from 01/01/1900 to12/31/1999, and then calculate the days from 01/01/2000 to 10/31/2000. This will give you the "day value". Use a modulus 7 division on this day value to find the day of the week the date falls out on e) Your inputiell have at least twenty dates to process. You will read up to the end of 3. Your program should print a line of code for each date to the console as follows Tuesday 10/31/2000 has a day value of 36829

Explanation / Answer

//C++ program

#include<iostream>

using namespace std;

  

struct Date

{

int d, m, y;

};

  

const int monthDays[12] = {31, 28, 31, 30, 31, 30,

31, 31, 30, 31, 30, 31};

  

bool isleapyear(int year){

if (year % 400 == 0)

return true;

if (year % 100 == 0)

return false;

if (year % 4 == 0)

return true;

return false;

}

int daysinmonth(int m ,int y){

if(isleapyear(y) && m==2)return monthDays[m-1]+1;

return monthDays[m-1];

}

int numberOfDays(Date d){

int days=0;

for(int i=1;i<=12;i++)

days +=daysinmonth(d.m,d.y);

return days;

}

int countLeapYears(Date d)

{

int years = d.y;

  

if (d.m <= 2)

years--;

return years / 4 - years / 100 + years / 400;

}

  

int daysBetweenTwoDate(Date dt1, Date dt2)

{

long int n1 = dt1.y*365 + dt1.d;

for (int i=0; i<dt1.m - 1; i++)

n1 += monthDays[i];

n1 += countLeapYears(dt1);

  

long int n2 = dt2.y*365 + dt2.d;

for (int i=0; i<dt2.m - 1; i++)

n2 += monthDays[i];

n2 += countLeapYears(dt2);

return (n2 - n1+1);

}

string weekday(int days){

string week []={"Sunday" ,"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};

return week[days%7];

}

  

int main()

{

Date dt1 = {1, 1, 1900};

Date dt2 = {31, 10, 2000};

int days = daysBetweenTwoDate(dt1 ,dt2);

cout << weekday(days) <<" "<<dt2.m<<"/"<<dt2.d<<"/"<<dt2.y<<" has a day value of " <<days<<" ";

  

return 0;

}

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