Question
On Netbeans tho, Write a program that reads in the following data, all entered on one line with at least one space separating them: an
On Netbeans tho,
Write a program that reads in the following data, all entered on one line with at least one space separating them:
- an integer representing a month
- an integer representing the day of the month
- an integer representing a year
- Check that the month is between 1 and 12. If its not print an error message.
- Day cannot be 0 or less nor can it be more than 31 for all months. Print an error message if these conditions occur. If day is in the range of 0 and 31, you will still need to check other conditions as noted below in 4.
- Year cannot be less than 1. Print an error message if that occurs.
If any one of these three conditions occurs, only one error message should print and no further code should be executed. If everything is good so far, then continue as below:
- Check that day is correct for the month. Remember the poem
30 days has September, April, June and November,
All the rest have 31 except February which has 28 but in a leap year has 29
- For all months, except February, you can check if the date is valid by the poem above.
- If the month has more days than allowed, print a message saying month number NN can not have XXX days (e.g., if the input is 6 31 2018 the message should say month 6 cannot have 31 days)
- If the month is February, youll need to check if the year is a leap year and then decide if the date is correct.
Page 97 in the textbook shows code to determine a leap year. A year is a leap year if (1) its divisible by 400 OR
(2) the year is divisible by 4 AND not divisible by 100.
So, if its a leap year any day up to and including 29 is valid, otherwise 28 is the largest date in February. If February has too many days, e.g., the input is 2 29 2001, print an error message stating
2001 is not a leap year, Feb can have only 28 days
- At any point that you determine that a date is valid, print a message in the format
5 18 2017 is a valid date
- Your code should print only one message if a date is valid.
- If its invalid, print only one error message. It a date has more than one error for example, the input is 6 45 -1234, it doesnt matter which error you pick first as long as you indicate only one error.
THESE TEST CASES MUST BE INCLUDED IN YOUR OUTPUT:
Enter month, day, year separated by spaces 6 30 2017
6 30 2017 is a valid date
Enter month, day, year separated by spaces 6 31 2017
month 6 can not have more than 30 days
Enter month, day, year separated by spaces -3 12 2019
-3 is not a valid month
Enter month, day, year separated by spaces 2 29 2000
2 29 2000 is a valid date
Enter month, day, year separated by spaces 2 30 2000
month 2 can not have 30 days
Enter month, day, year separated by spaces 2 -12 2019
month 2 can not have -12 days
Enter month, day, year separated by spaces 2 29 2001
2001 is not a leap year, 29 is invalid
Enter month, day, year separated by spaces 6 32 -109
year can not be negative
Enter month, day, year separated by spaces 6 32 2017
month 6 can not have more than 30 days
There are many ways to approach this problem. I recommend coding the input statements and steps 1-3 first and making sure they work properly.
Then move on to step 4.
- If the month is NOT February, then theres no need to check for a leap year. Just check if the month is Sept, April, June or Nov in which case it should have no more than 30. You already checked that no month has more than 31 in step 2 so theres no need to check again.
If the month is February, check if its a leap year in which case 29 is the max; not a leap year 28 is the max. At any point in the code, if a date is invalid print a message to that effect and exit the program. If all the tests have passed, then the date is valid. You should test your code for determining a leap year separately to make sure it works before you include it in the full solution
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started