import java.util.Date; class Biorhythm { private static final int PHYSICAL_PERIOD = 23; private static final int SENSITIVITY_PERIOD = 28; private static final int INTELLECTUAL_PERIOD = 33; private int birthdayYear, birthdayMonth, birthdayDate; private int calcYear, calcMonth, calcDate; public Biorhythm() { birthdayYear = 1969; birthdayMonth = 12; birthdayDate = 12; Date d = new Date(); calcYear = d.getYear() + 1900; calcMonth = d.getMonth() + 1; calcDate = d.getDate(); } public Biorhythm(int birthdayYear, int birthdayMonth, int birthdayDate) { this(); this.birthdayYear = birthdayYear; this.birthdayMonth = birthdayMonth; this.birthdayDate = birthdayDate; } public Biorhythm(int birthdayYear, int birthdayMonth, int birthdayDate, int calcYear, int calcMonth, int calcDate) { this.birthdayYear = birthdayYear; this.birthdayMonth = birthdayMonth; this.birthdayDate = birthdayDate; this.calcYear = calcYear; this.calcMonth = calcMonth; this.calcDate = calcDate; } public void setBirthday(int birthdayYear, int birthdayMonth, int birthdayDate) { this.birthdayYear = birthdayYear; this.birthdayMonth = birthdayMonth; this.birthdayDate = birthdayDate; } public void setCalculateDay(int calcYear, int calcMonth, int calcDate) { this.calcYear = calcYear; this.calcMonth = calcMonth; this.calcDate = calcDate; } public int getPhysicalBiorhythm() { return (int)(liveDays() % PHYSICAL_PERIOD); } public int getSensitivityBiorhythm() { return (int)(liveDays() % SENSITIVITY_PERIOD); } public int getIntellectualBiorhythm() { return (int)(liveDays() % INTELLECTUAL_PERIOD); } public long liveDays() { CalcDate calcCalcDate = new CalcDate(); calcCalcDate.set(calcYear, calcMonth, calcDate); CalcDate birthdayCalcDate = new CalcDate(); birthdayCalcDate.set(birthdayYear, birthdayMonth, birthdayDate); return calcCalcDate.getPastDays() - birthdayCalcDate.getPastDays(); } public int getBirthdayYear() { return birthdayYear; } public int getBirthdayMonth() { return birthdayMonth; } public int getBirthdayDate() { return birthdayDate; } public int getCalcYear() { return calcYear; } public int getCalcMonth() { return calcMonth; } public int getCalcDate() { return calcDate; } }