Im try to write a program but i keep getting this error
here is the program
program:
input: 3-digit ID & birth date (3 int month, day, year)
validate birth date (1900's; dont worry about leap year)
last student ID: 000
output: ID & birth date for each student
birth date output format: February 15, 1982
output # of stdents processed, # of students with February 29th bday, and birth date of oldest student
import java.util.Scanner;
public class StudentBirthdate
{
public static void main (String[] args)
{
Profile p = new Profile();
Profile oldestStudent = new Profile(1999,12, 31);
Profile base = new Profile (02, 29);
p.readData();
while(!(p.studentId.equals("000")))
{
if (p.dataValid(p))
{
p.totalStudents();
if (base.ckBirthDate(p))
p.updateBirthDateTotal();
if (base.ckOldestBirthDate(p, oldestStudent))
oldestStudent.updateBirthDateTotal();
p.formatMonth();
p.writeStudentData(p);
p.readData();
}
}
System.out.println(p.getStudentId());
System.out.println(p.getBirthDateDay());
System.out.println(p.getBirthDateMonth());
System.out.println(p.getBirthDateYear());
}
}
import java.util.Scanner;
public class Profile
{
private String studentId;
private String birthDateFormattedMon;
private int birthDateMonth;
private int birthDateDay;
private int birthDateYear;
private static int totalStudents;
private static int birthDateTotal;
Profile()
{}
Profile (int bdayDay, int bdayMonth, int bdayYear, String studId)
{
birthDateDay = bdayDay;
birthDateMonth = bdayMonth;
birthDateYear = bdayYear;
studentId = studId;
}
public Profile(int year, int month, int day)
{
birthDateYear=year;
birthDateMonth=month;
birthDateDay=day;
}
public Profile(int month, int day)
{
birthDateMonth=month;
birthDateDay=day;
}
public int getBirthDateDay()
{
return birthDateDay;
}
public int getBirthDateMonth()
{
return birthDateMonth;
}
public int getBirthDateYear()
{
return birthDateYear;
}
public String getStudentId()
{
return studentId;
}
public void readData()
{
Scanner input = new Scanner(System.in);
System.out.print("Enter a 3-digit student id:");
studentId = input.next();
if(studentId.equals("000")) return;
System.out.print("Enter month of birth date: ");
birthDateMonth = input.nextInt();
System.out.print("Enter day of birth date: ");
birthDateDay = input.nextInt();
System.out.print("Enter year of birth date: ");
birthDateYear = input.nextInt();
}
public boolean dataValid (Profile stud)
{
boolean validate = true;
if ((birthDateMonth < 01)||(birthDateMonth > 12))
{
validate = false;
System.out.println("Month must be b/w the range 01-12 inclusive.");
}
if ((birthDateDay < 01) || (birthDateDay > 31))
{
validate = false;
System.out.println("Day must be b/w the range 01-31 inclusive.");
}
if ((birthDateYear < 1900) || (birthDateYear > 1999))
{
validate = false;
System.out.println("Year must be b/w the range 1900-1999 inclusive.");
}
return validate;
}
public void totalStudents()
{
totalStudents++;
}
public void updateBirthDateTotal()
{
birthDateTotal++;
}
public void formatMonth()
{
switch (birthDateMonth)
{
case 1: birthDateFormattedMon = "January";
break;
case 2: birthDateFormattedMon = "February";
break;
case 3: birthDateFormattedMon = "March";
break;
case 4: birthDateFormattedMon = "April";
break;
case 5: birthDateFormattedMon = "May";
break;
case 6: birthDateFormattedMon = "June";
break;
case 7: birthDateFormattedMon = "July";
break;
case 8: birthDateFormattedMon = "August";
break;
case 9: birthDateFormattedMon = "September";
break;
case 10:birthDateFormattedMon = "October";
break;
case 11:birthDateFormattedMon = "November";
break;
case 12:birthDateFormattedMon = "Decemember";
}
}
public boolean ckBirthDate (Profile stud)
{
return((birthDateMonth == stud.birthDateMonth) && (birthDateDay == stud.birthDateDay))?true:false;
}
public static void writeOutcomes()
{
System.out.println(totalStudents + "students were processed.");
System.out.println(birthDateTotal + "students had a February 29th birth date.");
}
public boolean ckOldestBirthDate(Profile p, Profile oldestStu)
{
boolean birthDate = false;
if (p.birthDateYear < oldestStu.birthDateYear)
birthDate = true;
else if (p.birthDateYear == oldestStu.birthDateYear)
if (p.birthDateMonth < oldestStu.birthDateMonth)
birthDate = true;
else if (p.birthDateMonth == oldestStu.birthDateMonth)
if (p.birthDateDay < oldestStu.birthDateDay)
birthDate = true;
else
birthDate = false;
else
birthDate = false;
else
birthDate = false;
return birthDate;
}
public void updateOldestBirthDate(Profile oldestStu, Profile p)
{
oldestStu = p;
}
public static void writeStudentData(Profile p)
{
System.out.println("Student Id: " + p.studentId);
System.out.println("Birth Date: " + p.birthDateFormattedMon + p.birthDateDay + "," + p.birthDateYear);
}
}