Problem

Write a program that inputs a date (for example, July 4, 2008) and outputs the day of the...

Write a program that inputs a date (for example, July 4, 2008) and outputs the day of the week that corresponds to that date. The following algorithm is from http://en.wikipedia.org/wiki/Calculating_the_day_of_the_week. The implementation will require several functions.

bool  isLeapYear(7/it year);

This function should return true if year is a leap year and false if it is not. Here is pseudocode to determine a leap year:

leap_year = (year divisible by 400) or (year divisible by 4 and year not divisible by 100)) int getCenturyValue(int  year);

This function should take the first two digits of the year (that is, the century), divide by 4, and save the remainder. Subtract the remainder from 3 and return this value multiplied by 2. For example, the year 2008 becomes: (20/4) = 5 with a remainder of 0. 3–0 = 3. Return 3*2 = 6.

int getYearValue(int year);

This function computes a value based on the years since the beginning of the century. First, extract the last two digits of the year. For example, 08 is extracted for 2008. Next, factor in leap years. Divide the value from the previous step by 4 and discard the remainder. Add the two results together and return this value. For example, from 2008 we extract 08. Then (8/4) = 2 with a remainder of 0. Return 2 + 8=10.

int getMonthVa01ue( int month, int year);

This function should return a value based on the table below and will require invoking the is Leap Year function

Month

Return Value

January

0

(6 if year is a leap year)

February

3

(2 if year is a leap year)

March

3

April

6

May

1

June

4

July

6

August

2

September

5

October

0

November

3

December

5

Finally, to compute die day of the week, compute the sum of the dates day plus die values returned by get Month Value, get Year Value, and get Century Value. Divide the sum by 7 and compute the remainder. A remainder of 0 corresponds to Sunday, 1 corresponds to Monday, etc up to 6, which corresponds to Saturday. For example, the date July 4, 2008 should be computed as (day of month) + (getMonthVa~l ue) + (getYearValue) + (getCenturyValue) = 4 + 6 + 10 + 6 = 26. 26/7 = 3 with a remainder of 5. The fifth day of the week corresponds to Friday.

Your program should allow the user to enter any date and output the corresponding day of the week in English.

This program should include a void function named get Input that prompts the user for the date and returns the month, day, and year using pass-by-reference parameters. You may choose to have the user enter the dates month as either a number (1–12) or a month name

Step-by-Step Solution

Request Professional Solution

Request Solution!

We need at least 10 more requests to produce the solution.

0 / 10 have requested this problem solution

The more requests, the faster the answer.

Request! (Login Required)


All students who have requested the solution will be notified once they are available.
Add your Solution
Textbook Solutions and Answers Search
Solutions For Problems in Chapter 5
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT