· 8 years ago · Nov 03, 2016, 10:28 AM
1package com.getjavajob.training.algo.init.nafikovi;
2
3import java.util.ArrayList;
4import java.util.Calendar;
5
6public class TaskCh13N012 {
7 public static void main(String[] args) {
8 Database database = new Database();
9 database.printResult(database.findEmployeesByName("adsfasdf"));
10 database.printResult(database.findEmployeesByExperience(10));
11 }
12
13 public static class Employee {
14 private String name;
15 private String surname;
16 private String patronymic;
17 private String adress;
18 private String dateOfEmployment;
19
20 public Employee(String name, String surname, String adress, String dateOfEmployment) {
21 this.name = name;
22 this.surname = surname;
23 this.adress = adress;
24 this.dateOfEmployment = dateOfEmployment;
25 }
26
27 public Employee(String name, String surname, String patronymic, String adress, String dateOfEmployment) {
28 this(name, surname, adress, dateOfEmployment);
29 this.patronymic = patronymic;
30 }
31
32 public String getName() {
33 return name;
34 }
35
36 public void setName(String name) {
37 this.name = name;
38 }
39
40 public String getSurname() {
41 return surname;
42 }
43
44 public void setSurname(String surname) {
45 this.surname = surname;
46 }
47
48 public String getPatronymic() {
49 if (patronymic == null) {
50 return "";
51 } else {
52 return patronymic;
53 }
54 }
55
56 public void setPatronymic(String patronymic) {
57 this.patronymic = patronymic;
58 }
59
60 public String getAdress() {
61 return adress;
62 }
63
64 public void setAdress(String adress) {
65 this.adress = adress;
66 }
67
68 public String getDateOfEmployment() {
69 return dateOfEmployment;
70 }
71
72 public void setDateOfEmployment(String dateOfEmployment) {
73 this.dateOfEmployment = dateOfEmployment;
74 }
75
76 public int getRecordOfWork() {
77 int monthOfEmployment = Integer.parseInt(dateOfEmployment.substring(0, 2));
78 int yearOfEmployment = Integer.parseInt(dateOfEmployment.substring(3));
79
80 Calendar cal = Calendar.getInstance();
81 int month = cal.get(Calendar.MONTH) + 1;
82 int year = cal.get(Calendar.YEAR);
83
84 if (month >= monthOfEmployment) {
85 return year - yearOfEmployment;
86 } else {
87 return year - yearOfEmployment - 1;
88 }
89 }
90 }
91
92 public static class Database {
93 private ArrayList<Employee> employees;
94 public Database() {
95 employees = new ArrayList<>();
96 Employee petrIvanov = new Employee("Petr", "Ivanov", "Moscow, Tverskaya 12", "11.2008");
97 employees.add(petrIvanov);
98 Employee igorIvanov = new Employee("Igor", "Ivanov", "Ufa, Lenina, 33", "10.2013");
99 employees.add(igorIvanov);
100 Employee annaPetrova = new Employee("Anna", "Petrova", "Igorevna", "Ufa, Gagarina 31", "05.2011");
101 employees.add(annaPetrova);
102 Employee olgaTikhonova = new Employee("Olga", "Tikhonova", "Ivanovna", "Tula, Pirogova 12", "05.2012");
103 employees.add(olgaTikhonova);
104 Employee olegViktorov = new Employee("Oleg", "Viktorov", "Kursk, Kurskaya, 15", "02.2007");
105 employees.add(olegViktorov);
106 Employee ignatKulkov = new Employee("Ignat", "Kulkov", "Viktorovich", "Bryansk, Tikhomirova, 5", "12.2012");
107 employees.add(ignatKulkov);
108 Employee ruslanFadeev = new Employee("Ruslan", "Fadeev", "Omsk, Gagarina, 30", "08.2014");
109 employees.add(ruslanFadeev);
110 Employee alinaKupcova = new Employee("Alina", "Kupcova", "Igorevna", "Omsk, Lenina, 48", "01.2001");
111 employees.add(alinaKupcova);
112 Employee ivanPrudnikov = new Employee("Ivan", "Prudnikov", "Tomsk, Lenina, 49", "09.2009");
113 employees.add(ivanPrudnikov);
114 Employee georgyLenin = new Employee("Georgy", "Lenin", "Ufa, Lenina, 51", "07.2007");
115 employees.add(georgyLenin);
116 Employee denisLomov = new Employee("Denis", "Lomov", "Petrovich", "Kiev, Marksa, 10", "10.2010");
117 employees.add(denisLomov);
118 Employee johnNewman = new Employee("John", "Newman", "London, Lenina, 15", "01.2015");
119 employees.add(johnNewman);
120 Employee alexJames = new Employee("Alex", "James", "Samara, Dekabristov, 1", "06.2011");
121 employees.add(alexJames);
122 Employee zaharPakhomov = new Employee("Zahar", "Pakhomov", "Danilovich", "Tver, Tverskaya, 55", "04.2010");
123 employees.add(zaharPakhomov);
124 Employee sonyaNochnaya = new Employee("Sonya", "Nochnaya", "Igorevna", "Moscow, Tverskaya, 17", "12.2012");
125 employees.add(sonyaNochnaya);
126 Employee jackJackson = new Employee("Jack", "Jackson", "Moscow, Lublinskaya, 153", "04.2007");
127 employees.add(jackJackson);
128 Employee billMurrey = new Employee("Bill", "Murrey", "Los Angeles, Lenina, 15", "01.1998");
129 employees.add(billMurrey);
130 Employee samirNasri = new Employee("Samir", "Nasri", "Valencia, Lenina, 50", "08.2009");
131 employees.add(samirNasri);
132 Employee michaelPhelps = new Employee("Michael", "Phelps", "New-York, Lenina 15", "05.2014");
133 employees.add(michaelPhelps);
134 Employee wayneRooney = new Employee("Wayne", "Rooney", "Manchester, Lenina, 44", "05.2003");
135 employees.add(wayneRooney);
136 }
137
138 public ArrayList<Employee> getEmployees() {
139 return employees;
140 }
141
142 public void setEmployees(ArrayList<Employee> employees) {
143 this.employees = employees;
144 }
145
146 public ArrayList<Employee> findEmployeesByName(String searchQuery) {
147 ArrayList<Employee> list = new ArrayList<>();
148 for (int i = 0; i < employees.size(); i++) {
149 if (employees.get(i).getName().toLowerCase().contains(searchQuery.toLowerCase()) ||
150 employees.get(i).getSurname().toLowerCase().contains(searchQuery.toLowerCase()) ||
151 employees.get(i).getPatronymic().toLowerCase().contains(searchQuery.toLowerCase())) {
152 list.add(employees.get(i));
153 }
154 }
155 return list;
156 }
157
158 public ArrayList<Employee> findEmployeesByExperience(int a) {
159 ArrayList<Employee> list = new ArrayList<>();
160 for (int i = 0; i < employees.size(); i++) {
161 if (employees.get(i).getRecordOfWork() >= a) {
162 list.add(employees.get(i));
163 }
164 }
165 return list;
166 }
167
168 public void printResult(ArrayList<Employee> list) {
169 for (int i = 0; i < list.size(); i++) {
170 System.out.println("Name: " + list.get(i).getName() + " " + list.get(i).getSurname() + " " +
171 list.get(i).getPatronymic());
172 System.out.println("Adress: " + list.get(i).getAdress());
173 System.out.println("Date of employment: " + list.get(i).getDateOfEmployment());
174 System.out.println();
175 }
176 }
177 }
178}