Solution
import java.util.*; public class Employee { /* instance variables*/ String id; /*(9 digits stored in a string)*/ String name; Date birthdate; int serviceYears; int vacationDays; double salary; int absenceDays; /* Program description. */ public Employee(String id, String name, Date bDate){ this.id=id; this.name=name; this.birthdate=bDate; this.serviceYears=0; this.vacationDays=0; this.salary=0.0f; this.absenceDays=0; } public Employee(String id, String name, Date bDate, int servY, int vacD, double salary, int absD){ this.id=id; this.name=name; this.birthdate=bDate; this.serviceYears=servY; this.vacationDays=vacD; this.salary=salary; this.absenceDays=absD; } public void display() { // displays all information of an employee; System.out.println("================================="); System.out.println("ID :"+this.id); System.out.println("Name :"+this.name); System.out.println("Birth :"+this.birthdate.getYear()+"/"+ (this.birthdate.getMonth()+1)+"/"+ this.birthdate.getDate()); System.out.println("Age :"+this.getAge()); System.out.println("Salary : $"+this.salary); System.out.println("Service :"+this.serviceYears+" years"); System.out.println("Absence :"+this.absenceDays+" days"); System.out.println("Vacation:"+this.vacationDays+" days"); System.out.println("================================="); } public void displayID() { // displays the ID and the name of an employee on the same line; System.out.println(this.id+" "+this.name); } public double getSalary(){ // returns the salary of an employee; return this.salary; } public int getYearService(){ // returns the number of years in service; return this.serviceYears; } public int getDaysVacation(){ // returns the number of days of vacation earned; return this.vacationDays; } public int getDaysAbsence(){ // returns the number of days of absence for illness; return this.absenceDays; } public void setSalary(double salary){ // changes the salary with a given new value; this.salary=salary; } public void setYearService(int years){ // changes the number of years of service with a given number; this.serviceYears=years; } public void setDaysVacation(int days){ // changes the number of days of vacation earned with a given number; this.vacationDays=days; } public void setDaysAbsence(int days){ //changes the number of days of absence for illness with a given number; this.absenceDays=days; } public int getAge(){ // returns the age of the employee; Date today; int todayYear; int birthYear; int age; today = new Date(); todayYear = today.getYear(); birthYear = this.birthdate.getYear(); age = todayYear - birthYear; if (! this.hadBirthdayThisYear()) age = age - 1; return age; } private boolean hadBirthdayThisYear() { /* Return true if I have already had my birthday this year. */ Date today; int todayMonth; int myMonth; int myDayOfMonth; int todayDayOfMonth; today = new Date(); todayMonth = today.getMonth(); myMonth = this.birthdate.getMonth(); todayDayOfMonth = today.getDate(); myDayOfMonth = this.birthdate.getDate(); if (myMonth < todayMonth) return true; else if (myMonth > todayMonth) return false; else if (myDayOfMonth <= todayDayOfMonth) return true; else return false; } public static void main(String args[]) { /* Program statements go here. */ Employee myEmployee1; Employee myEmployee2; myEmployee1 = new Employee("123456789", "Fred Flintstone", new Date(60,2,12)); myEmployee2 = new Employee("987654321", "John Smith", new Date(70,4,30), 10,3,40000,5); System.out.println("Testing the Employee class"); myEmployee1.display(); myEmployee1.displayID(); System.out.println("Should be 123456789 Fred Flintstone"); myEmployee2.display(); myEmployee2.displayID(); System.out.println("Should be 987654321 John Smith"); double mysalary = myEmployee2.getSalary(); System.out.println(mysalary + "<< Should be 40,000"); myEmployee1.setSalary(120000); mysalary = myEmployee1.getSalary(); System.out.println(mysalary + "<< Should be 120,000"); int number = myEmployee2.getYearService(); System.out.println(number + "<< Should be 10"); number = myEmployee2.getDaysVacation(); System.out.println(number + "<< Should be 3"); number = myEmployee2.getDaysAbsence(); System.out.println(number + "<< Should be 5"); myEmployee1.setYearService(8); number = myEmployee1.getYearService(); System.out.println(number + "<< Should be 8"); myEmployee1.setDaysVacation(13); number = myEmployee1.getDaysVacation(); System.out.println(number + "<< Should be 13"); myEmployee1.setDaysAbsence(2); number = myEmployee1.getDaysAbsence(); System.out.println(number + "<< Should be 2"); } }