私は、人の誕生日、名前、誕生日、誕生日を追加できるプログラムをJavaで作成しようとしています。私は、毎月生まれた人と月の人数のリストを印刷することができるようにしたい。私は "人"クラスと "アナライザ"クラスの2つのクラス1つの次のコードを持っています。ここでは、次のコード、インデックスとwhileループを使用してarraylistにリストを作成させることはできません
import java.util.*;
/*
* This project will keep track of which day
* (1 to 31) and which month (1 to 12)in which
* people are born.
* Look to LogAnalyzer for clue.
*/
public class Person
{
private int birthDay;
private int birthMonth;
private int birthYear;
private String name;
public Person(String name, int birthDay, int birthMonth, int birthYear)
{
this.name = name;
if(birthDay >= 1 && birthDay <= 31){
this.birthDay = birthDay;
}
else {
this.birthDay = -1;
}
if(birthMonth >= 1 && birthMonth <= 12){
this.birthMonth = birthMonth;
}
else {
this.birthMonth = -1;
}
this.birthYear = birthYear;
}
public String getName()
{
return name;
}
public int getBirthDay()
{
return birthDay;
}
public int getBirthMonth()
{
return birthMonth;
}
public int getBirthYear()
{
return birthYear;
}
public String toString()
{
return "Name: " + getName() + " BirthDay: " + getBirthDay() +
" BirthMonth: " + getBirthMonth() + " BirthYear: " +
getBirthYear();
}
}
import java.util.ArrayList;
import java.util.Iterator;
public class Analyzer
{
// instance variables - replace the example below with your own
private int []birthDayStats;
private int []birthMonthStats;
private ArrayList people;
/**
* Constructor for objects of class Analyzer
*/
public Analyzer()
{
people = new ArrayList();
}
public void addPerson(String name, int birthDay, int birthMonth, int
birthYear)
{
Person person = new Person(name, birthDay, birthMonth, birthYear);
if(person.getBirthDay()!=-1|| person.getBirthMonth() != -1) {
people.add(person);
birthMonthStats [birthMonth]++;
birthDayStats[birthDay]++;
}
else
{
System.out.println ("Your current Birthday is " + birthDay + " or "
+ birthMonth + " which is not a correct number 1-31 or 1-12 please put in a
correct number ");
}
}
public void printPeople() //prints all people in form: “ Name: Tom
Month: 5 Day: 2 Year: 1965”
{
int index = 0;
while(index < people.size()){
Person person = (Person) people.get(index);
System.out.println(person);
index++;
}
}
public void printMonthList()//prints the number of people born in each month
Sample output to the right with days being similar
{
int index = 0;
while (index < birthMonthStats.length){
System.out.println (birthMonthStats[index]);
index++;
}
}
}
私は悩みを抱えているコードは、私はそれを印刷しようとしている「printmonthlist」方法ですが、それは印刷されませんです。私は12ヶ月の月のリストと毎月生まれた人の数を印刷したい。あなたのいずれかが私に感謝を助けることができるならば。
printMonthList()
方法であなたのログを少し変え、あなたは[ 'LocalDate'](https://docs.oracle.com/javase/8/を使用することができますdocs/api/java/time/LocalDate.html)のクラスを使用しています。 'LocalDate.of(y、m、d)'と['YearMonth'](https://docs.oracle.com/javase/8/docs/api/java/time/YearMonth.html)&[' MonthDay' ](https://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html)のクラスが役立ちます。 –