Java: Create Employee class with years of service calculation
Write a Java program to create a class called "Employee" with a name, salary, and hire date attributes, and a method to calculate years of service.
Sample Solution:
Java Code:
// Employee.java
// Import the LocalDate class from the java.time package
import java.time.LocalDate;
// Import the Period class from the java.time package
import java.time.Period;
// Define the Employee class
public class Employee {
// Declare a private variable to store the name of the employee
private String name;
// Declare a private variable to store the salary of the employee
private double salary;
// Declare a private variable to store the hire date of the employee
private LocalDate hireDate;
// Constructor for the Employee class
public Employee(String name, double salary, LocalDate hireDate) {
// Initialize the name of the employee
this.name = name;
// Initialize the salary of the employee
this.salary = salary;
// Initialize the hire date of the employee
this.hireDate = hireDate;
}
// Method to get the name of the employee
public String getName() {
// Return the name of the employee
return name;
}
// Method to set the name of the employee
public void setName(String name) {
// Update the name variable to the new value
this.name = name;
}
// Method to get the salary of the employee
public double getSalary() {
// Return the salary of the employee
return salary;
}
// Method to set the salary of the employee
public void setSalary(double salary) {
// Update the salary variable to the new value
this.salary = salary;
}
// Method to get the hire date of the employee
public LocalDate getHireDate() {
// Return the hire date of the employee
return hireDate;
}
// Method to set the hire date of the employee
public void setHireDate(LocalDate hireDate) {
// Update the hire date variable to the new value
this.hireDate = hireDate;
}
// Method to calculate the years of service of the employee
public int getYearsOfService() {
// Calculate the period between the hire date and the current date, and return the number of years
return Period.between(hireDate, LocalDate.now()).getYears();
}
// Method to print the details of the employee
public void printEmployeeDetails() {
// Print the name of the employee
System.out.println("\nName: " + name);
// Print the salary of the employee
System.out.println("Salary: " + salary);
// Print the hire date of the employee
System.out.println("Hire Date: " + hireDate);
}
}
In the above Employee class, there are three private attributes: name, salary, and hireDate, a constructor that initializes these attributes with the values passed as arguments, and getter and setter methods to access and modify these attributes.
There is a method “getYearsOfService()” to calculate years of service between the hire date and the current date, and returns the number of years as an integer value.
// Main.java
// Import the LocalDate class from the java.time package
import java.time.LocalDate;
// Define the Main class
public class Main {
// Main method, the entry point of the Java application
public static void main(String[] args) {
// Create a new Employee object named employee1 with name "Roberta Petrus", salary 50000, and hire date "2021-04-01"
Employee employee1 = new Employee("Roberta Petrus", 50000, LocalDate.parse("2021-04-01"));
// Create a new Employee object named employee2 with name "Loyd Blair", salary 70000, and hire date "2015-04-01"
Employee employee2 = new Employee("Loyd Blair", 70000, LocalDate.parse("2015-04-01"));
// Create a new Employee object named employee3 with name "Magdalena Artemon", salary 50000, and hire date "2011-01-15"
Employee employee3 = new Employee("Magdalena Artemon", 50000, LocalDate.parse("2011-01-15"));
// Print the details of employee1
employee1.printEmployeeDetails();
// Print the years of service of employee1
System.out.println("Years of Service: " + employee1.getYearsOfService());
// Print the details of employee2
employee2.printEmployeeDetails();
// Print the years of service of employee2
System.out.println("Years of Service: " + employee2.getYearsOfService());
// Print the details of employee3
employee3.printEmployeeDetails();
// Print the years of service of employee3
System.out.println("Years of Service: " + employee3.getYearsOfService());
}
}
In the above main() function, we create three instances of the "Employee" class, and print their name, salary, hire date, and years of service using the appropriate methods.
Sample Output:
Name: Roberta Petrus Salary: 50000.0 HireDate: 2021-04-01 Years of Service: 2 Name: Loyd Blair Salary: 70000.0 HireDate: 2015-04-01 Years of Service: 8 Name: Magdalena Artemon Salary: 50000.0 HireDate: 2011-01-15 Years of Service: 12
Flowchart:
Java Code Editor:
Improve this sample solution and post your code through Disqus.
Java OOP Previous: Traffic Light Simulation.
Java OOP Next: Manage student courses using the Student class.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics