I need help solving the following errors in my code. ERRORS: Clock 330 (05:30),
ID: 3872667 • Letter: I
Question
I need help solving the following errors in my code.
ERRORS:
Clock 330 (05:30), alarm 345 (05:45), should sound after advancing 15 minutes. Should not be sounding before advancing time. expected:<false> but was:<true>
Turning off alarm should stop sounding. Should not be sounding before advancing time. expected:<false> but was:<true> Setting clock time should not stop sounding. Should not be sounding before advancing time. expected:<false> but was:<true>
Clock 330 (05:30), alarm 330 (05:30), should sound after advancing 1440 minutes. expected:<true> but was:<false>
JAVA CODE:
package hw2;
public class ClockRadio {
public static final int MINUTES_PER_DAY = 1440;
public static final int SNOOZE_MINUTES = 9;
private int clockMinute, clockHour, alarmMinute, alarmHour = 1;
private int origClockTime, origAlarmTime;
private boolean isOn = false, useRadio, isBuzzing, isSounding;
private boolean twentyFourHourDisplay = true;
private boolean isPlayingRadio;
private boolean isPMClock, isPMAlarm;
private int advancedTime;
private int alarmTime, clockTime, rawClockTime, rawAlarmTime, rawAlarmTimeEffective;
private int snoozeTime = 0;
private int givenTimePastMidnight;
public ClockRadio() {
}
public ClockRadio(int givenMinutesPastMidnight) {
givenTimePastMidnight = givenMinutesPastMidnight;
origClockTime = givenMinutesPastMidnight;
if (twentyFourHourDisplay == true) {
clockMinute = givenMinutesPastMidnight % 60;
clockHour = givenMinutesPastMidnight / 60;
}
else if (twentyFourHourDisplay == false) {
if ((givenTimePastMidnight / 720) >= 1) {
isPMClock = true;
clockHour = (givenTimePastMidnight - 720) / 60;
clockMinute = (givenTimePastMidnight - 720) % 60;
}
}
}
public void advanceTime(int givenMinutes) {
givenMinutes = givenMinutes % MINUTES_PER_DAY;
clockHour += givenMinutes / 60;
clockMinute += givenMinutes % 60;
advancedTime = givenMinutes;
}
public void advanceTime(int givenHours, int givenMinutes) {
clockHour = clockHour + givenHours;
clockMinute = clockMinute + givenMinutes;
advancedTime = givenMinutes + (givenHours * 60);
}
public void alarmDisabled() {
isOn = false;
isSounding = false;
rawAlarmTimeEffective = rawAlarmTime;
}
public void alarmEnabled() {
isOn = true;
}
public java.lang.String getAlarmTimeAsString() {
if (isPMAlarm == true && twentyFourHourDisplay == false) {
return String.format("%02d:%02d", alarmHour, alarmMinute + " PM");
}
else if (isPMAlarm == false && twentyFourHourDisplay == false) {
return String.format("%02d:%02d", alarmHour, alarmMinute + " AM");
}
else {
return String.format("%02d:%02d", alarmHour, alarmMinute);
}
}
public int getAlarmTimeRaw() {
rawAlarmTime = ((alarmHour * 60) + alarmMinute);
rawAlarmTime = rawAlarmTime % MINUTES_PER_DAY;
return rawAlarmTime;
}
public java.lang.String getClockTimeAsString() {
if (isPMClock == true && twentyFourHourDisplay == false) {
return String.format("%02d:%02d", clockHour, clockMinute + " PM");
}
else if (isPMClock == false && twentyFourHourDisplay == false) {
return String.format("%02d:%02d", clockHour, clockMinute + " AM");
}
else {
return String.format("%02d:%02d", clockHour, clockMinute);
}
}
public int getClockTimeRaw() {
rawClockTime = ((clockHour * 60) + clockMinute);
rawClockTime = rawClockTime % MINUTES_PER_DAY;
return rawClockTime;
}
public java.lang.String getEffectiveAlarmTimeAsString() {
return String.format("%02d:%02d", alarmHour, alarmMinute);
}
public int getEffectiveAlarmTimeRaw() {
rawAlarmTimeEffective = (rawAlarmTime) + snoozeTime;
rawAlarmTimeEffective = rawAlarmTimeEffective % MINUTES_PER_DAY;
return rawAlarmTimeEffective;
}
public boolean isBuzzing() {
if (isOn == true && useRadio == false && rawClockTime != rawAlarmTime) {
if ((rawAlarmTimeEffective - rawClockTime) <= advancedTime) {
isBuzzing = true;
}
else if ((1440 - (rawClockTime - rawAlarmTimeEffective)) <= advancedTime) {
isBuzzing = true;
}
}
else {
isBuzzing = false;
}
return isBuzzing;
}
public boolean isPlayingRadio() {
if (isOn == true && useRadio == true && rawClockTime != rawAlarmTime) {
if ((rawAlarmTimeEffective - rawClockTime) <= advancedTime) {
isPlayingRadio = true;
}
else if ((1440 - (rawClockTime - rawAlarmTimeEffective)) <= advancedTime) {
isPlayingRadio = true;
}
}
else {
isPlayingRadio = false;
}
return isPlayingRadio;
}
public boolean isSounding() {
if (isOn == true) {
if (this.isBuzzing() == true || this.isPlayingRadio() == true) {
isSounding = true;
}
else {
isSounding = false;
}
}
else if (isOn == false) {
isSounding = false;
}
return isSounding;
}
public void set24HourDisplay(boolean use24HourDisplay) {
twentyFourHourDisplay = true;
}
public void setAlarmTime(int givenMinutesPastMidnight) {
alarmMinute = givenMinutesPastMidnight % 60;
alarmHour = givenMinutesPastMidnight / 60;
if (((givenMinutesPastMidnight) % MINUTES_PER_DAY) >= 720) {
isPMAlarm = true;
}
else {
isPMAlarm = false;
}
}
public void setAlarmTime(int givenHours, int givenMinutes, boolean isPm) {
alarmHour = givenHours;
alarmMinute = givenMinutes;
if (alarmHour >= 12) {
isPMAlarm = true;
}
else {
isPMAlarm = false;
}
}
public void setRadioMode(boolean useRadio) {
useRadio = true;
}
public void setTime(int givenMinutesPastMidnight) {
givenMinutesPastMidnight = givenMinutesPastMidnight % 1440;
clockMinute = givenMinutesPastMidnight % 60;
clockHour = givenMinutesPastMidnight / 60;
if (givenMinutesPastMidnight >= 720) {
isPMClock = true;
}
else {
isPMClock = false;
}
}
public void setTime(int givenHours, int givenMinutes, boolean isPm) {
clockHour = givenHours;
clockMinute = givenMinutes;
isPMClock = isPm;
}
public void snooze() {
snoozeTime = snoozeTime + SNOOZE_MINUTES;
}
}
Explanation / Answer
package hw2;
public class ClockRadio {
public static final int MINUTES_PER_DAY = 1440;
public static final int SNOOZE_MINUTES = 9;
private int clockMinute, clockHour, alarmMinute, alarmHour = 1;
private int origClockTime, origAlarmTime;
private boolean isOn = false, useRadio, isBuzzing, isSounding;
private boolean twentyFourHourDisplay = true;
private boolean isPlayingRadio;
private boolean isPMClock, isPMAlarm;
private int advancedTime;
private int alarmTime, clockTime, rawClockTime, rawAlarmTime, rawAlarmTimeEffective;
private int snoozeTime = 0;
private int givenTimePastMidnight;
public ClockRadio() {
}
public ClockRadio(int givenMinutesPastMidnight) {
givenTimePastMidnight = givenMinutesPastMidnight;
origClockTime = givenMinutesPastMidnight;
if (twentyFourHourDisplay == true) {
clockMinute = givenMinutesPastMidnight % 60;
clockHour = givenMinutesPastMidnight / 60;
}
else if (twentyFourHourDisplay == false) {
if ((givenTimePastMidnight / 720) >= 1) {
isPMClock = true;
clockHour = (givenTimePastMidnight - 720) / 60;
clockMinute = (givenTimePastMidnight - 720) % 60;
}
}
}
public void advanceTime(int givenMinutes) {
givenMinutes = givenMinutes % MINUTES_PER_DAY;
clockHour += givenMinutes / 60;
clockMinute += givenMinutes % 60;
advancedTime = givenMinutes;
}
public void advanceTime(int givenHours, int givenMinutes) {
clockHour = clockHour + givenHours;
clockMinute = clockMinute + givenMinutes;
advancedTime = givenMinutes + (givenHours * 60);
}
public void alarmDisabled() {
isOn = false;
isSounding = false;
rawAlarmTimeEffective = rawAlarmTime;
}
public void alarmEnabled() {
isOn = true;
}
public java.lang.String getAlarmTimeAsString() {
if (isPMAlarm == true && twentyFourHourDisplay == false) {
return String.format("%02d:%02d", alarmHour, alarmMinute + " PM");
}
else if (isPMAlarm == false && twentyFourHourDisplay == false) {
return String.format("%02d:%02d", alarmHour, alarmMinute + " AM");
}
else {
return String.format("%02d:%02d", alarmHour, alarmMinute);
}
}
public int getAlarmTimeRaw() {
rawAlarmTime = ((alarmHour * 60) + alarmMinute);
rawAlarmTime = rawAlarmTime % MINUTES_PER_DAY;
return rawAlarmTime;
}
public java.lang.String getClockTimeAsString() {
if (isPMClock == true && twentyFourHourDisplay == false) {
return String.format("%02d:%02d", clockHour, clockMinute + " PM");
}
else if (isPMClock == false && twentyFourHourDisplay == false) {
return String.format("%02d:%02d", clockHour, clockMinute + " AM");
}
else {
return String.format("%02d:%02d", clockHour, clockMinute);
}
}
public int getClockTimeRaw() {
rawClockTime = ((clockHour * 60) + clockMinute);
rawClockTime = rawClockTime % MINUTES_PER_DAY;
return rawClockTime;
}
public java.lang.String getEffectiveAlarmTimeAsString() {
return String.format("%02d:%02d", alarmHour, alarmMinute);
}
public int getEffectiveAlarmTimeRaw() {
rawAlarmTimeEffective = (rawAlarmTime) + snoozeTime;
rawAlarmTimeEffective = rawAlarmTimeEffective % MINUTES_PER_DAY;
return rawAlarmTimeEffective;
}
public boolean isBuzzing() {
if (isOn == true && useRadio == false && rawClockTime != rawAlarmTime) {
if ((rawAlarmTimeEffective - rawClockTime) <= advancedTime) {
isBuzzing = true;
}
else if ((1440 - (rawClockTime - rawAlarmTimeEffective)) <= advancedTime) {
isBuzzing = true;
}
}
else {
isBuzzing = false;
}
return isBuzzing;
}
public boolean isPlayingRadio() {
if (isOn == true && useRadio == true && rawClockTime != rawAlarmTime) {
if ((rawAlarmTimeEffective - rawClockTime) <= advancedTime) {
isPlayingRadio = true;
}
else if ((1440 - (rawClockTime - rawAlarmTimeEffective)) <= advancedTime) {
isPlayingRadio = true;
}
}
else {
isPlayingRadio = false;
}
return isPlayingRadio;
}
public boolean isSounding() {
if (isOn == true) {
if (this.isBuzzing() == true || this.isPlayingRadio() == true) {
isSounding = true;
}
else {
isSounding = false;
}
}
else if (isOn == false) {
isSounding = false;
}
return isSounding;
}
public void set24HourDisplay(boolean use24HourDisplay) {
twentyFourHourDisplay = true;
}
public void setAlarmTime(int givenMinutesPastMidnight) {
alarmMinute = givenMinutesPastMidnight % 60;
alarmHour = givenMinutesPastMidnight / 60;
if (((givenMinutesPastMidnight) % MINUTES_PER_DAY) >= 720) {
isPMAlarm = true;
}
else {
isPMAlarm = false;
}
}
public void setAlarmTime(int givenHours, int givenMinutes, boolean isPm) {
alarmHour = givenHours;
alarmMinute = givenMinutes;
if (alarmHour >= 12) {
isPMAlarm = true;
}
else {
isPMAlarm = false;
}
}
public void setRadioMode(boolean useRadio) {
useRadio = true;
}
public void setTime(int givenMinutesPastMidnight) {
givenMinutesPastMidnight = givenMinutesPastMidnight % 1440;
clockMinute = givenMinutesPastMidnight % 60;
clockHour = givenMinutesPastMidnight / 60;
if (givenMinutesPastMidnight >= 720) {
isPMClock = true;
}
else {
isPMClock = false;
}
}
public void setTime(int givenHours, int givenMinutes, boolean isPm) {
clockHour = givenHours;
clockMinute = givenMinutes;
isPMClock = isPm;
}
public void snooze() {
snoozeTime = snoozeTime + SNOOZE_MINUTES;
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.