Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I need help with this homework, I do not know what I am doing wrong but the score is 33/37. Some numbers are printed. I

I need help with this homework, I do not know what I am doing wrong but the score is 33/37. Some numbers are printed. I provided my code and the answers I keep getting wrong. Can someone please help me!

Homework 4-3

Write a Java program that asks the user for a date entered as 4 integers: dayNumber monthNumber date year. Where:

dayNumber

An integer from 1-7, where 1 = Sunday, 2 = Monday, ..., 7 = Saturday

monthNumber

An integer from 1-12, where 1 = January, 2 = February, ..., 12 = December

date

An integer from 1-31 representing the date.

year

An integer representing the year.

_____________________________________________________________________________________________

Your prompt to the user should be:

Enter 4 integers representing dayNumber monthNumber date year:

_____________________________________________________________________________________________

You program will compute the proper dayName from the specified dayNumber and the proper monthName from the specified monthNumber. Your program will print out the specified date in the following format:

dayNumber monthNumber date year is dayName monthName date, year

Please note your program will have to error check the input as follows:

  1. First the dayNumber is checked for being in the range 1..7. If that is not the case, your program should print out the following message and terminate execution: Invalid day number: dayNumber, please enter a number from 1..7.

  2. Then the monthNumber is checked for being in the range 1..12. If that is not the case, your program should print out the following message and terminate execution: Invalid month number: monthNumber, please enter a number from 1..12.

  3. Then the date is checked for being in the range 1..31. If that is not the case, your program should print out the following message and terminate execution: Invalid date number: date, please enter a number from 1..31.

  4. Then the date must be checked for validity. For example, there is no February 30, February 31, April 31, June 31, September 31, November 31. If the date is invalid, your program should print out the following message and terminate execution: Invalid date: monthName, does not have date days, please enter a valid date.

  5. Lastly, if the monthNumber = 2, and date = 29 you must verify that the year entered is a leap year, which is the only time that February 29 exists. Please see Wikipidia's Page on Leap Year. If the year is not a leap year and the user entered a date = 29, your program should print out the following message and terminate execution: Invalid date: year is not a leap year, February does not have date days, please enter a valid date.

Please note that your class should be named DateConverter.

Here is my code. Please tell me where I made a mistake. Some numbers are not printing.

import java.util.Scanner;

import java.util.Scanner;

public class DateConverter { public static void main (String[] args) { int dayNumber,monthNumber,date,year; System.out.println("Enter 4 integers representing dayNumber monthNumber date year:"); Scanner sc = new Scanner(System.in); dayNumber=sc.nextInt(); monthNumber=sc.nextInt(); date=sc.nextInt(); year=sc.nextInt(); String dayName,monthName; if(dayNumber<1||dayNumber>7) { System.out.println("Invalid day number: "+dayNumber+", please enter a number from 1..7."); return; } if(monthNumber<1||monthNumber>12) { System.out.println("Invalid month number: "+monthNumber+", please enter a number from 1..12."); return; } if(date<1||date>31) { System.out.println("Invalid date number: "+date+", please enter a number from 1..31."); return; } //Assigning dayName if(dayNumber==1) dayName="Sunday"; else if(dayNumber==2) dayName="Monday"; else if(dayNumber==3) dayName="Tuesday"; else if(dayNumber==4) dayName="Wednesday"; else if(dayNumber==5) dayName="Thursday"; else if(dayNumber==6) dayName="Friday"; else dayName="Saturday"; //Assigning monthName if(monthNumber==1) monthName="January"; else if(monthNumber==2) monthName="February"; else if(monthNumber==3) monthName="March"; else if(monthNumber==4) monthName="April"; else if(monthNumber==5) monthName="May"; else if(monthNumber==6) monthName="June"; else if(monthNumber==7) monthName="July"; else if(monthNumber==8) monthName="August"; else if(monthNumber==9) monthName="September"; else if(monthNumber==10) monthName="October"; else if(monthNumber==11) monthName="November"; else monthName="December"; //Remaining checks if((monthNumber==2&&(date==30||date==31))||(monthNumber==4&&date==31)||(monthNumber==6&&date==31)||(monthNumber==9&&date==31)||(monthNumber==11&&date==31)) { System.out.println("Invalid date: "+monthName+", does not have "+date+" days, please enter a valid date."); return; } if(monthNumber==monthNumber&&date==29) { if(!(year%4==0&&year%100!=0)) { System.out.println("Invalid date: "+year+" is not a leap year, February does not have "+date+" days, please enter a valid date."); return; } } System.out.println(dayNumber+" "+monthNumber+" "+date+" "+year+" is "+dayName+" "+monthName+" "+date+", "+year); } }

Those numbers that are giving me hard time on zybooks are:

5 2 29 2000

Here's computer answer: Enter 4 integers representing dayNumber monthNumber date year: Invalid date: 2011 is not a leap year, February does not have 29 days, please enter a valid date.

2 2 29 2400

Here's computer answer: Enter 4 integers representing dayNumber monthNumber date year: 2 2 29 2400 is Monday February 29, 2400

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Modeling And Design

Authors: Toby J. Teorey, Sam S. Lightstone, Tom Nadeau, H.V. Jagadish

5th Edition

0123820200, 978-0123820204

More Books

Students also viewed these Databases questions