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