On Time for the Exam
Здравейте колеги.
Имам проблем с тая задача и не мога да го разреша може ли малко помощ.
При Вход 16, 00, 15, 00 ми отпечатва Early 1 hours before the start а трябва да 1:00 как да го направя?
При Вход 11, 30, 8, 12 ми отпеватва Early 3,318 hours before the start а трябва да бъде 3:18 тоест как да махна 3-ката ?
При Вход 9, 00, 10, 30 ми отпечатва Late 1,5 hours after the start а трябва да е 1:30 и тук вече нямам идей как да го оправя?
Ето го и кода ми:
import java.text.DecimalFormat; import java.util.Scanner; public class OnTimeForTheExam { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); DecimalFormat format = new DecimalFormat("0.##"); int examHour = Integer.parseInt(scanner.nextLine()); int examMinute = Integer.parseInt(scanner.nextLine()); int hourOfArrival = Integer.parseInt(scanner.nextLine()); int minuteOfArrival = Integer.parseInt(scanner.nextLine()); double examTime = (examHour * 60) + examMinute; double arrivalTime = (hourOfArrival * 60) + minuteOfArrival; if (arrivalTime > examTime){ double timeLate = arrivalTime - examTime; if (timeLate > 60){ double hoursLate = timeLate / 60; double minuteLate = timeLate % 60; System.out.println("Late"); System.out.printf(format.format(hoursLate) + " hours after the start",minuteLate); }else if (timeLate <= 60){ System.out.println("Late"); System.out.printf(format.format(timeLate) + " minutes after the start"); } } else if (arrivalTime < examTime){ double timeEarly = examTime - arrivalTime; if ((timeEarly > 30) && (timeEarly < 60)){ double hoursEarly = timeEarly / 60; double minuteEarly = timeEarly % 60; System.out.println("Early"); System.out.printf(format.format(hoursEarly) + format.format(minuteEarly) + " minutes before the start"); }else if ((timeEarly >= 30) && (timeEarly >= 60 )){ double hoursEarly = timeEarly / 60; double minuteEarly = timeEarly % 60; System.out.println("Early"); System.out.printf(format.format(hoursEarly) + format.format(minuteEarly) + " hours before the start"); }else if (timeEarly <= 30){ System.out.println("On time"); System.out.printf(format.format(timeEarly) + " minutes before the start"); } } else if (arrivalTime == examTime){ System.out.println("On time"); } } }
Благодаря Предварително!
Пробвах и така но проблемите остават, някаде бъркам яката ама вече блокирах.
Пусни си един дебъгер и виж дали си взимаш стойностите правилно. Мисля, че този формат няма да ти е нужен.
След като ми скъса нервите я докарах на 93/100 от точки един тест дава грешен отговор само че не мога да видя кои.
Ето го новият код:
Някакви идеи?