int numberofhourbreakstart = (numberofh*60+numberofmin+classlength/2)/60; // ❌ classlength/2 = 75,非 70
休息時間計算硬編碼錯誤,且未處理分鐘進位邏輯。
import java.util.*;
import java.text.SimpleDateFormat;
public class LectureTime {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Hour: "); int h = sc.nextInt();
System.out.print("Minute: "); int m = sc.nextInt();
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, h);
cal.set(Calendar.MINUTE, m);
cal.set(Calendar.SECOND, 0);
// 休息開始:+70分鐘
Calendar restStart = (Calendar) cal.clone();
restStart.add(Calendar.MINUTE, 70);
// 休息結束:+80分鐘
Calendar restEnd = (Calendar) cal.clone();
restEnd.add(Calendar.MINUTE, 80);
// 課程結束:+150分鐘
Calendar end = (Calendar) cal.clone();
end.add(Calendar.MINUTE, 150);
SimpleDateFormat fmt = new SimpleDateFormat("Hour: H\nMinute: m");
System.out.println("This lecture will end at\n" + fmt.format(end.getTime()));
System.out.println("The mid-lecture break start time is\n" + fmt.format(restStart.getTime()));
System.out.println("The mid-lecture break end time is\n" + fmt.format(restEnd.getTime()));
}
}