In: Computer Science
I cant not seem to get this right. I have tried and tried can I please get help. Thank you!
Writing a Modular Program in Java Summary In this lab, you add the input and output statements to a partially completed Java program. When completed, the user should be able to enter a year, a month, and a day to determine if the date is valid. Valid years are those that are greater than 0, valid months include the values 1 through 12, and valid days include the values 1 through 31. Instructions Notice that variables have been declared for you. Write the simulated housekeeping() method that contains input statements to retrieve a year, a month, and a day from the user. Add statements to the simulated housekeeping() method that convert the String representation of the year, month, and day to ints. Include the output statements in the simulated endOfJob() method. The format of the output is as follows: month/day/year is a valid date. or month/day/year is an invalid date. Execute the program entering the following date: month = 5, day = 32, year =2014 Observe the output of this program. Execute the program entering the following date: month = 9, day = 21, year = 2002 Observe the output of this program. The program is entered as the following: /* Program Name: BadDate.java Function: This program determines if a date entered by the user is valid. Input: Interactive Output: Valid date is printed or user is alerted that an invalid date was entered. */ import java.util.Scanner; public class BadDate { public static void main(String args[]) { // Declare variables String yearString; String monthString; String dayString; int year; int month; int day; boolean validDate = true; final int MIN_YEAR = 0, MIN_MONTH = 1, MAX_MONTH = 12, MIN_DAY = 1, MAX_DAY = 31; // This is the work of the housekeeping() method // Get the year, then the month, then the day Scanner input = new Scanner(System.in); // variable = input.nextLine(); // Convert Strings to integers // This is the work of the detailLoop() method // Check to be sure date is valid if( year <= MIN_YEAR ) // invalid year validDate = false; else if ( month < MIN_MONTH || month > MAX_MONTH ) // invalid month validDate = false; else if ( day < MIN_DAY || day > MAX_DAY ) // invalid day validDate = false; // This is the work of the endOfJob() method // Test to see if date is valid and output date and whether it is valid or not if( validDate == true ) { // Output statement } else { // Output statement } } // end of main() method } // end of BadDate class
Code Screenshots:
Sample Output 1:
Sample Output 2:
Code to Copy:
import java.util.Scanner;
public class BadDate
{
//Declare the variables globally.
String yearString ;
String monthString;
String dayString;
int year;
int month;
int day;
boolean validDate = true;
final int MIN_YEAR = 0,
MIN_MONTH = 1,
MAX_MONTH = 12,
MIN_DAY = 1,
MAX_DAY = 31;
//Define the method houseKeeping().
public void housekeeping()
{
//Define an object
//of the Scanner class.
Scanner input = new Scanner(System.in);
//Prompt the user
//to enter the year.
System.out.println("Enter the year: ");
//Read and store the input.
yearString = input.nextLine();
//Prompt the user
//to enter the month.
System.out.println("Enter the month: ");
//Read and store the input.
monthString = input.nextLine();
//Prompt the user to enter the day.
System.out.println("Enter the day: ");
//Read and store the input.
dayString = input.nextLine();
//Convert the string to the integer.
year = Integer.parseInt(yearString);
//Convert the string to the integer.
month = Integer.parseInt(monthString);
//Convert the string to the integer.
day = Integer.parseInt(dayString);
//Close
input.close();
}
public void endOfJob()
{
System.out.print(month+"/"+day+"/"+year);
if(validDate)
{
System.out.println(" is a valid date.");
}
else
{
System.out.println(" is not"
+ " a valid date.");
}
}
public void detailLoop()
{
if( year <= MIN_YEAR )
// invalid year
validDate = false;
else if ( month < MIN_MONTH || month > MAX_MONTH )
// invalid month
validDate = false;
else if ( day < MIN_DAY || day > MAX_DAY )
// invalid day
validDate = false;
}
public static void main(String args[])
{
// Declare variables
BadDate obj = new BadDate();
// This is the work of the housekeeping() method
// Get the year, then the month, then the day
// Convert Strings to integers
obj.housekeeping();
// This is the work of the detailLoop() method
// Check to be sure date is valid
obj.detailLoop();
// This is the work of the endOfJob() method
// Test to see if date is valid and output date and whether it is valid or not
obj.endOfJob();
} // end of main() method
}