10年员工还是5年员工就是看卡号了,你可以吧卡号设为private String id 这样用substring方法截取前四位再转换为Integer和2017一比就出来了。
package test;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
private String empid;
private String name;
private int age;
private double salary;
public String getEmpid() {
return empid;
}
public void setEmpid(String empid) {
this.empid = empid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public Employee(String empid, String name, int age, double salary) {
this.empid = empid;
this.name = name;
this.age = age;
this.salary = salary;
}
public static void main(String[] args) {
Employee emp_1=new Employee("-20150601001", "张三", 22, 1200d);
Employee emp_2=new Employee("-20010101001", "李四", 35, 13500d);
Employee emp_3=new Employee("-20040106006", "王五", 28, 9000d);
Employee emp_4=new Employee("-20020204011", "赵六", 30, 12000d);
Employee emp_5=new Employee("-20080204111", "刘一", 27, 6200d);
List<Employee> list=new ArrayList<Employee>();
list.add(emp_1);
list.add(emp_2);
list.add(emp_3);
list.add(emp_4);
list.add(emp_5);
int year = new GregorianCalendar().getWeekYear();//当前年
for (int i = 0,len=list.size(); i < len; i++) {
Integer empYear=Integer.parseInt(list.get(i).getEmpid().substring(1, 5));
if(year-10>=empYear)
System.out.println(list.get(i).getName()+"是10年以上老员工,奖励10块钱");
if(year-5>=empYear&& empYear>year-10)
System.out.println(list.get(i).getName()+"是5年以上10年以下老员工,奖励5块钱");
}
}
}
最上面还缺个导包语句:
import java.util.ArrayList;
有不清楚的地方欢迎随时提问~~~
class Worker{
String num;//卡号
String name;//姓名
int age;//年龄
int salary;//工资
//构造方法
public Worker(String num, String name, int age, int salary) {
this.num = num;
this.name = name;
this.age = age;
this.salary = salary;
}
//获取每个人的工龄
public int getYear(){
String str = this.num.substring(0,4);//截取第0位到第3位的字符串
int n = Integer.parseInt(str);
int m = 2017 - n;
return m;
}
}
public class WorkerTest {
public static void main(String[] args) {
ArrayList<Worker> list = new ArrayList<Worker>();
ArrayList<Worker> fiveList = new ArrayList<Worker>();
ArrayList<Worker> tenList = new ArrayList<Worker>();
Worker worker1 = new Worker("20150601001","张三",22,1200);
Worker worker2 = new Worker("20010101001","李四",35,13500);
Worker worker3 = new Worker("20040106006","王五",38,9000);
Worker worker4 = new Worker("20020204011","赵六",30,12000);
Worker worker5 = new Worker("20080204111","刘一",27,6200);
list.add(worker1);
list.add(worker2);
list.add(worker3);
list.add(worker4);
list.add(worker5);
for(int i = 0; i < list.size(); i++){
if(list.get(i).getYear() >= 10){
tenList.add(list.get(i));
}else if(list.get(i).getYear() >= 5 && list.get(i).getYear() < 10){
fiveList.add(list.get(i));
}
}
System.out.println("五年工龄的是:");
for(int i = 0; i < fiveList.size(); i++){
System.out.print(fiveList.get(i).name + " ");
}
System.out.println();
System.out.println("十年工龄的是:");
for(int i = 0; i < tenList.size(); i++){
System.out.println(tenList.get(i).name + " ");
}
}
}
一个map集合能解决的事情