Given the following code, I want it to check for the validity of month (1-12) da
ID: 3727762 • Letter: G
Question
Given the following code, I want it to check for the validity of month (1-12) day (1-31) and year (1900-2020) when the user enters the data, not just in the date methods, how can I do this:
import java.util.Scanner;
public class Employees3 {
public static class Name
{
public String first=" ";
public String last=" ";
public Name()
{
first=" ";
last =" ";
}
public String getFirst() {
return first;
}
public String getLast()
{
return last;
}
public void setName(String first,String last) {
this.first = first;
this.last = last;
}
}
public static class Date
{
public int month=0;
public int day=0;
public int year=0;
public Date()
{
month=0;
day=0;
year=0;
}
public int getMonth()
{
return month;
}
public void setMonth(int month)
{ //if clause to check the date
if(month <1 || month >12)
System.out.println("Invalid Month");
else
this.month = month;
}
public int getDay()
{
return day;
}
public void setDay(int day) { //if clause to check the date
if(day<1 || day>31)
System.out.println("Invalid Day");
else
this.day = day;
}
public int getYear()
{
return year;
}
public void setYear(int year) {//if clause to check the validity of year
if(year<1900 || year>2020)
System.out.println("Invalid year");
else
this.year = year;
}
public void setDate(int month,int day,int year)
{
setMonth(month);
setDay(day);
setYear(year);
}
}
public static class Address
{
public String streetNum=" ";
public String street=" ";
public String streetType=" ";
public String city=" ";
public String state=" ";
public int zip=0;
public Address()
{
streetNum=" ";
street=" ";
streetType=" ";
city=" ";
state=" ";
zip=0;
}
public String getStreetNum()
{
return streetNum;
}
public String getStreet()
{
return street;
}
public String getStreetType()
{
return streetType;
}
public String getCity()
{
return city;
}
public String getState()
{
return state;
}
public int getZip()
{
return zip;
}
public void setAddress(String streetNum, String street,
String streetType, String city,String state,int zip)
{
this.streetNum=streetNum;
this.street=street;
this.streetType=streetType;
this.city =city;
this.state =state;
this.zip =zip;
}
}
public static class Employee
{
private int EmpNumb=0;
private Name EmpName;
private Address EmpAddress;
private Date HireDate;
public Employee()
{
EmpNumb=0;
EmpName=new Name();
EmpAddress=new Address();
HireDate =new Date();
}
public int getEmpNumb()
{
return EmpNumb;
}
public Name getEmpName()
{
EmpName.first=EmpName.getFirst();
EmpName.last =EmpName.getLast();
return EmpName;
}
public Address getEmpAddress()
{
EmpAddress.streetNum=EmpAddress.getStreetNum();
EmpAddress.street=EmpAddress.getStreet();
EmpAddress.streetType=EmpAddress.getStreetType();
EmpAddress.city =EmpAddress.getCity();
EmpAddress.state =EmpAddress.getState();
EmpAddress.zip =EmpAddress.getZip();
return EmpAddress;
}
public Date getHireDate()
{
HireDate.month=HireDate.getMonth();
HireDate.day =HireDate.getDay();
HireDate.year =HireDate.getYear();
return HireDate;
}
public void setEmpId(int Id)
{
EmpNumb=Id;
}
public void setEmpName(String first,String last)
{
EmpName.setName(first,last);
}
public void setHireDate(int month,int day,int year)
{
HireDate.setDate(month, day, year);
}
public void setEmpAddress(String streetNum, String street,
String streetType, String city,String state,int zip)
{
EmpAddress.setAddress(streetNum, street, streetType,
city, state, zip);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Enter the Number of Employee: ");
Scanner scnr = new Scanner(System.in);
int n=scnr.nextInt();
//enter the values
System.out.println("Enter the Data in Employee Array ");
int Id;
String first,last;
int month,day,year;
String streetNum, street, streetType, city,state;
int zip;
//Now creating Employee array of Size n
Employee []EmpArr;
EmpArr=new Employee[n];
for(int i=0;i<n;i++)
EmpArr[i]=new Employee();
for(int i=0;i<n;i++)
{
System.out.println("Enter the Employee ID ");
Id=scnr.nextInt();
System.out.println("Enter the Employee First Name and Last Name ");
first=scnr.next();
last=scnr.next();
System.out.println("Enter the Employee Hire Date "
+ ",i.e 03 11 2018, separated by a space");
month=scnr.nextInt();
day=scnr.nextInt();
year=scnr.nextInt();
System.out.println("Enter the Employee Address: Street Number, "
+ "StreetName, Street Type, City,State ,Zip");
streetNum=scnr.next();
street=scnr.next();
streetType=scnr.next();
city =scnr.next();
state =scnr.next();
zip =scnr.nextInt();
EmpArr[i].setEmpId(Id);
EmpArr[i].setEmpName(first, last);
EmpArr[i].setHireDate(month, day, year);
EmpArr[i].setEmpAddress(streetNum, street, streetType,
city, state, zip);
}
//Now Printing the Data of Employee
Name xName;
Address xAddr;
Date xHireDate;
for(int i=0;i<n;i++)
{
Id=EmpArr[i].getEmpNumb();
xName=EmpArr[i].getEmpName();
xAddr=EmpArr[i].getEmpAddress();
xHireDate=EmpArr[i].getHireDate();
System.out.println("Id "+Id+" Name "+xName.first+" "+xName.last);
System.out.println("Address : "+xAddr.streetNum+" "+xAddr.street+" "
+xAddr.streetType+", "+xAddr.city+" , "+xAddr.state+","+xAddr.zip);
System.out.println("Hire Date: "+xHireDate.month+"-"
+xHireDate.day+"-"+xHireDate.year);
System.out.println();
System.out.println();
}
}
}
Explanation / Answer
import java.util.Scanner;
public class Employees3 {
public static class Name
{
public String first=" ";
public String last=" ";
public Name()
{
first=" ";
last =" ";
}
public String getFirst() {
return first;
}
public String getLast()
{
return last;
}
public void setName(String first,String last) {
this.first = first;
this.last = last;
}
}
public static class Date
{
public int month=0;
public int day=0;
public int year=0;
public Date()
{
month=0;
day=0;
year=0;
}
public int getMonth()
{
return month;
}
public void setMonth(int month)
{ //if clause to check the date
if(month <1 || month >12)
System.out.println("Invalid Month");
else
this.month = month;
}
public int getDay()
{
return day;
}
public void setDay(int day) { //if clause to check the date
if(day<1 || day>31)
System.out.println("Invalid Day");
else
this.day = day;
}
public int getYear()
{
return year;
}
public void setYear(int year) {//if clause to check the validity of year
if(year<1900 || year>2020)
System.out.println("Invalid year");
else
this.year = year;
}
public void setDate(int month,int day,int year)
{
setMonth(month);
setDay(day);
setYear(year);
}
}
public static class Address
{
public String streetNum=" ";
public String street=" ";
public String streetType=" ";
public String city=" ";
public String state=" ";
public int zip=0;
public Address()
{
streetNum=" ";
street=" ";
streetType=" ";
city=" ";
state=" ";
zip=0;
}
public String getStreetNum()
{
return streetNum;
}
public String getStreet()
{
return street;
}
public String getStreetType()
{
return streetType;
}
public String getCity()
{
return city;
}
public String getState()
{
return state;
}
public int getZip()
{
return zip;
}
public void setAddress(String streetNum, String street,
String streetType, String city,String state,int zip)
{
this.streetNum=streetNum;
this.street=street;
this.streetType=streetType;
this.city =city;
this.state =state;
this.zip =zip;
}
}
public static class Employee
{
private int EmpNumb=0;
private Name EmpName;
private Address EmpAddress;
private Date HireDate;
public Employee()
{
EmpNumb=0;
EmpName=new Name();
EmpAddress=new Address();
HireDate =new Date();
}
public int getEmpNumb()
{
return EmpNumb;
}
public Name getEmpName()
{
EmpName.first=EmpName.getFirst();
EmpName.last =EmpName.getLast();
return EmpName;
}
public Address getEmpAddress()
{
EmpAddress.streetNum=EmpAddress.getStreetNum();
EmpAddress.street=EmpAddress.getStreet();
EmpAddress.streetType=EmpAddress.getStreetType();
EmpAddress.city =EmpAddress.getCity();
EmpAddress.state =EmpAddress.getState();
EmpAddress.zip =EmpAddress.getZip();
return EmpAddress;
}
public Date getHireDate()
{
HireDate.month=HireDate.getMonth();
HireDate.day =HireDate.getDay();
HireDate.year =HireDate.getYear();
return HireDate;
}
public void setEmpId(int Id)
{
EmpNumb=Id;
}
public void setEmpName(String first,String last)
{
EmpName.setName(first,last);
}
public void setHireDate(int month,int day,int year)
{
HireDate.setDate(month, day, year);
}
public void setEmpAddress(String streetNum, String street,
String streetType, String city,String state,int zip)
{
EmpAddress.setAddress(streetNum, street, streetType,
city, state, zip);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Enter the Number of Employee: ");
Scanner scnr = new Scanner(System.in);
int n=scnr.nextInt();
//enter the values
System.out.println("Enter the Data in Employee Array ");
int Id;
String first,last;
int month,day,year;
String streetNum, street, streetType, city,state;
int zip;
//Now creating Employee array of Size n
Employee []EmpArr;
EmpArr=new Employee[n];
for(int i=0;i<n;i++)
EmpArr[i]=new Employee();
for(int i=0;i<n;i++)
{
System.out.println("Enter the Employee ID ");
Id=scnr.nextInt();
System.out.println("Enter the Employee First Name and Last Name ");
first=scnr.next();
last=scnr.next();
// check date validity before passing it to methods in date class
while(true)
{
System.out.println("Enter the Employee Hire Date " + ",i.e 03 11 2018, separated by a space");
month=scnr.nextInt();
day=scnr.nextInt();
year=scnr.nextInt();
if(month < 1 || month > 12 || day < 1 || day > 31 || year < 1900 || year > 2020)
System.out.println("Invalid date. Please input again ");
else
break;
}
System.out.println("Enter the Employee Address: Street Number, "
+ "StreetName, Street Type, City,State ,Zip");
streetNum=scnr.next();
street=scnr.next();
streetType=scnr.next();
city =scnr.next();
state =scnr.next();
zip =scnr.nextInt();
EmpArr[i].setEmpId(Id);
EmpArr[i].setEmpName(first, last);
EmpArr[i].setHireDate(month, day, year);
EmpArr[i].setEmpAddress(streetNum, street, streetType,
city, state, zip);
}
//Now Printing the Data of Employee
Name xName;
Address xAddr;
Date xHireDate;
for(int i=0;i<n;i++)
{
Id=EmpArr[i].getEmpNumb();
xName=EmpArr[i].getEmpName();
xAddr=EmpArr[i].getEmpAddress();
xHireDate=EmpArr[i].getHireDate();
System.out.println("Id "+Id+" Name "+xName.first+" "+xName.last);
System.out.println("Address : "+xAddr.streetNum+" "+xAddr.street+" "
+xAddr.streetType+", "+xAddr.city+" , "+xAddr.state+","+xAddr.zip);
System.out.println("Hire Date: "+xHireDate.month+"-"
+xHireDate.day+"-"+xHireDate.year);
System.out.println();
System.out.println();
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.