Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lyalin #21

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions src/ru/gb/family_tree/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
//Lyalin
package ru.gb.family_tree;

import ru.gb.family_tree.humans.Human;
import ru.gb.family_tree.tree.FamilyTree;

import java.time.LocalDate;

import static ru.gb.family_tree.humans.Gender.Female;
import static ru.gb.family_tree.humans.Gender.Male;

public class Main {
public static void main(String[] args) {
FamilyTree familyTree = new FamilyTree();

Human hum1 = new Human("Pavel", Male, LocalDate.of(1953,11,3));
Human hum2 = new Human("Olga", Female, LocalDate.of(1980,9,12));
Human hum3 = new Human("Gleb", Male,
LocalDate.of(1978,7,23),
LocalDate.of(2020,3,14));

familyTree.addHuman(hum1);
familyTree.addHuman(hum2);
familyTree.addHuman(hum3);

System.out.println(familyTree);
}

}
5 changes: 5 additions & 0 deletions src/ru/gb/family_tree/humans/Gender.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package ru.gb.family_tree.humans;

public enum Gender {
Male, Female
}
80 changes: 80 additions & 0 deletions src/ru/gb/family_tree/humans/Human.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package ru.gb.family_tree.humans;

import java.time.LocalDate;
import java.time.Period;

public class Human {
private String name;
private Gender gender;
private LocalDate date_of_birth;
private LocalDate date_of_death;


public Human(String name, Gender gender, LocalDate date_of_birth,
LocalDate date_of_death) {
this.name = name;
this.gender = gender;
this.date_of_birth = date_of_birth;
this.date_of_death = date_of_death;
}

public Human(String name, Gender gender, LocalDate date_of_birth) {
this(name, gender, date_of_birth, null);
}

public int getAge() {
if (date_of_death == null) {
return getPeriod(date_of_birth, LocalDate.now());
}
else {
return getPeriod(date_of_birth, date_of_death);
}
}

private int getPeriod(LocalDate date_of_birth, LocalDate date_of_death) {
Period diff = Period.between(date_of_birth, date_of_death);
return diff.getYears();
}

public String getName() {
return name;
}

public LocalDate getDate_of_birth() {
return date_of_birth;
}

public LocalDate getDate_of_death() {
return date_of_death;
}

public void setDate_of_birth(LocalDate date_of_birth) {
this.date_of_birth = date_of_birth;
}

public void setDate_of_death(LocalDate date_of_death) {
this.date_of_death = date_of_death;
}

public Gender getGender() {
return gender;
}


@Override
public String toString() {
return getInfo();
}

public String getInfo() {
StringBuilder sb = new StringBuilder();
sb.append("Имя: ");
sb.append(name);
sb.append(", Пол: ");
sb.append(gender);
sb.append(", Возраст: ");
sb.append(getAge());
return sb.toString();
}

}
38 changes: 38 additions & 0 deletions src/ru/gb/family_tree/tree/FamilyTree.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package ru.gb.family_tree.tree;

import ru.gb.family_tree.humans.Human;

import java.util.ArrayList;
import java.util.List;

public class FamilyTree {
private List<Human> humanList;

public FamilyTree() {
humanList = new ArrayList<>();
}

public void addHuman(Human human) {
humanList.add(human);
}

public Human findByName(String nameHuman) {
for (Human human: humanList) {
if (human.getName().equalsIgnoreCase(nameHuman)) {
return human;
}
}
return null;
}

@Override
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("Family tree:\n");
for (Human human : humanList) {
stringBuilder.append(human);
stringBuilder.append("\n");
}
return stringBuilder.toString();
}
}
19 changes: 0 additions & 19 deletions src/ru/gb/vending_machine/Main.java

This file was deleted.