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 yearString, a monthString, and a dayString 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 =2014Observe the output of this program.

Execute the program entering the following date:month = 9, day = 21, year = 2002Observe the output of this program.


/* 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