Попытка вычислить дату между возрастом (периодом) сотрудника и датой его приема на работу (LocalDate).Как я могу обойти несоответствие типа данных? - PullRequest
0 голосов
/ 23 ноября 2018

Я практикую использование инкапсуляции в Java для создания профиля сотрудников.Я пытаюсь указать как возраст сотрудников, рассчитанный с использованием

private Period age;
private LocalDate currentDate;
private LocalDate dob;
public Period calcAge() {
    currentDate = LocalDate.now();
    age = Period.between(currentDate, dob); //dob is Date Of Birth
    return age;
}

, так и возраст, в котором они были приняты на работу.Моими первыми мыслями было сделать это следующим способом:

public Period hiredAge() {
    return Period.between(age, hireDate);
}

Однако я получаю сообщение об ошибке «Период не может быть преобразован в LocalDate»

Я пытался исследовать оба способавыполнить вычисление, используя «age» в качестве LocalDate и введя hireDate в качестве Period, оба безрезультатно.Как я могу рассчитать возраст, в котором сотрудник был принят на работу?

1 Ответ

0 голосов
/ 23 ноября 2018

Точно так же, как вы вычислили age с использованием Period.between(currentDate, dob), вы можете рассчитать возраст, в котором они были наняты, используя Period.between(dob, hireDate).

Кстати, вы получаете эту ошибку, потому что вы передаете age,который является Period, а не LocalDate в Period.between(age, hireDate).

...