Write a program that models an employee. An employee has an employee number, a name, an address, and a hire date. A name consists of a first name and a last name. An address consists of a street, a city, a state (2 characters), and a 5-digit zip code. A date consists of an integer month, day and year. All fields are required to be non-blank. The Date fields should be reasonably valid values (ex. month 1-12, day 1-31, year > 1900 and < 2020). Issue appropriate error messages when incorrect data is entered.
Create public Employee, Name, Address, and Date classes in your solution. Also create an application class named EmployeeDB which will use the previously listed classes, contain the application’s main() method, contain an array of Employee objects, and perform all the user interaction. Each class should be in its own Java source file. You may use the Date class from the lectures or define your own. The Java-supplied Date class cannot be used. Provide appropriate class constructors, getter methods, setter methods, toString() and any other methods you think are necessary. The classes should not do any direct user input/output. All user input/output will be done in the main method.
Your program should prompt the user for the number of employees to enter then prompt to enter data for the number of employees specified, storing the data in an array of type Employee. Upon program exit, the detailed data of each employee should be displayed to the terminal.
Be sure to comment your code and use the course’s code formatting style.
Submit the source code for each class, in a zip file named as follows: Assignment6, followed by an underscore (_), followed by your first name initial, followed by your last name then section.
For example, if your name is Jane Smith your zip file would be Assignment6_jsmith82.zip.