Помогите пожалуйста дописать код. Нужно вывести людей, возраст которых попадает под заданный диапазон. Никак не выходит!
Код:
import javax.xml.crypto.Data;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Calendar;
import java.util.Scanner;
//Создание абстрактного класса Persona
abstract class Persona {
String name;
int day;
int month;
int year;
int get_year()
{ return year; }
int get_day()
{return day;}
int get_month()
{return month;}
public int age (int day, int month,int year){
Calendar calendar = Calendar.getInstance();
int month_of_year = calendar.get(Calendar.MONTH);
int day_of_month = calendar.get(Calendar.DAY_OF_MONTH);
int Year = calendar.get(Calendar.YEAR);
if ((month>month_of_year) || (month==month_of_year) && (day>day_of_month)){
return Year-year-1; }
else {
return Year-year;
}
}
public void Show_information(){
System.out.println("Name: " + this.name);
System.out.println("DateOfBirth: " + this.day+this.month+this.year);
System.out.println("Age: " + this.age(day,month,year));
}
}
//Создание проивзодного класса Abiturient
class Abiturient extends Persona{
private String surname;
private int day;
private int month;
private int year;
private String faculty;
Abiturient(String surname, int day, int month, int year, String faculty) {
super();
this.surname = surname;
this.day = day;
this.month = month;
this.year = year;
this.faculty = faculty;
}
public void Show_information() {
System.out.println("Фамилия:" + this.surname);
System.out.println("Дата рождения: " + this.day + "." + this.month + "." +this.year);
System.out.println("Возраст: " +this.age(day,month,year));
System.out.println("Факультет: " + this.faculty);
}
}
//Создание проивзодного класса Student
class Student extends Persona{
private String surname;
private int day;
private int month;
private int year;
private String faculty;
private int course;
Student(String surname, int day, int month,int year ,String faculty, int course) {
super();
this.surname = surname;
this.day = day;
this.month = month;
this.year = year;
this.faculty = faculty;
this.course = course;
}
public void Show_information() {
System.out.println("Фамилия:" + this.surname);
System.out.println("Дата рождения: " + this.day + "." + this.month + "." +this.year);
System.out.println("Возраст: " +this.age(day,month,year));
System.out.println("Факультет: " + this.faculty);
System.out.println("Курс: " + this.course);
}
}
//Создание проивзодного класса Proffessor
class Lecturer extends Persona{
private String surname;
private int day;
private int month;
private int year;
private String faculty;
private String position;
private int work_experience;
Lecturer(String surname, int day,int month,int year, String faculty, String position, int work_experience) {
super();
this.surname = surname;
this.day = day;
this.month = month;
this.year = year;
this.faculty = faculty;
this.position = position;
this.work_experience = work_experience;
}
public void Show_information() {
System.out.println("Фамилия:" + this.surname);
System.out.println("Дата рождения: " + this.day + "." + this.month + "." +this.year);
System.out.println("Возраст: " +this.age(day,month,year));
System.out.println("Факультет: " + this.faculty);
System.out.println("Должность: " + this.position);
System.out.println("Опыт работы: " + this.work_experience);
}
}
public class Pe {
public static void main (String args[]){
Scanner in = new Scanner(System.in);
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
int n,a,k,i,d,m,y;
String s;
System.out.println("Введите количество экземпляров");
n=in.nextInt();
Persona[] p= new Persona[n];
System.out.println("1-Абитуриент, 2-Студент, 3-Преподователь");
for (i = 0; i < n; i++){
System.out.println("Введите номер персоны");
a=in.nextInt();
switch (a)
{
case 1:{
System.out.println("Введите фамилию абитуриента");
s =in.next();
String name = s;
System.out.println("Введите день рождения абитуриента:");
k =in.nextInt() ;
int day = k;
System.out.println("Введите месяц рождения абитуриента:");
k = in.nextInt();
int month = k;
System.out.println("Введите год рождения абитуриента:");
k = in.nextInt();
int year = k;
System.out.println("Введите факультет абитуриента");
s = in.next();
String faculty = s;
p[i] = new Abiturient (name,day,month, year, faculty);
break; }
case 2:{
System.out.println("Введите фамилию студента");
s = in.next();
String name = s;
System.out.println("Введите день рождения студента:");
k =in.nextInt() ;
int day = k;
System.out.println("Введите месяц рождения студента:");
k = in.nextInt();
int month = k;
System.out.println("Введите год рождения студента:");
k = in.nextInt();
int year = k;
System.out.println("Введите факультет студента");
s = in.next();
String faculty = s;
System.out.println("Введите курс студента:");
k = in.nextInt();
int course = k;
p[i] = new Student (name,day,month, year,faculty,course);
break;
}
case 3:{
System.out.println("Введите фамилию преподователя");
s = in.next();
String name = s;
System.out.println("Введите день рождения преподователя:");
k =in.nextInt() ;
int day = k;
System.out.println("Введите месяц рождения преподователя:");
k = in.nextInt();
int month = k;
System.out.println("Введите год рождения преподователя:");
k = in.nextInt();
int year = k;
System.out.println("Введите факультет, на котором работает преподователь");
s = in.next();
String faculty = s;
System.out.println("Введите должность реподователя");
s = in.next();
String position = s;
System.out.println("Введите стаж работы преподователя:");
k = in.nextInt();
int work_experience = k;
p[i] = new Lecturer (name,day,month, year,faculty, position,work_experience);
break;
}
default: { System.out.println("----------------------------------ERROR-----------------------------------"); break; }
}
}
for (i=0; i<n; i++){
p[i].Show_information();
System.out.println("_____________________________");
}
int d1,d2;
System.out.println("Введите начало диапазона: ");
d1=in.nextInt();
System.out.println("Введите конец диапазона: ");
d2=in.nextInt();
Calendar calendar = Calendar.getInstance();
int Year = calendar.get(Calendar.YEAR);
for (i=0; i<n; i++){
System.out.println("Возраст: " +p[i].age(p[i].get_day(), p[i].get_month(), p[i].get_year()));
}
}}