Я создаю программу для поиска разницы во времени между двумя входами. Начало и время окончания ввода вводятся в 12-часовом формате, таком как 9:30 и 11:15.Разница во времени с использованием parseInt() и подстроки
Я прочитал строку, используя функцию подстроки, чтобы извлечь строку (до ':'), а затем преобразован в целое. Экстракция работает отлично.
Проблема, которая у меня есть с расчетами. например - разница в времени между 13:03 и 12:56 составляет 1433 минуты. Но моя программа отображает разницу в 713 минут.
У меня есть часть вычисления кода вверх. Мы ценим любые предложения.
// If-else statements to calculate the total time difference
if((lower1.indexOf('a') == -1) && (lower2.indexOf('a') == -1) && (intMin1 <= 60) && (intMin2 <= 60)){
timeDifference = Math.abs((((intHrs1+12)*60)+intMin1) - (((intHrs2+12)*60)+intMin2));
System.out.println("The time difference is " + timeDifference + " minutes");
} else if((lower1.indexOf('a') != -1) && (lower2.indexOf('a') == -1) && (intMin1 <= 60) && (intMin2 <= 60)) {
timeDifference = Math.abs((((intHrs2+12)*60)+intMin2) - ((intHrs1*60)+intMin1));
System.out.println("The time difference is " + timeDifference + " minutes");
} else if((lower1.indexOf('a') != -1) && (lower2.indexOf('a') != -1) && (intMin1 <= 60) && (intMin2 <= 60)){
timeDifference = Math.abs(((intHrs2*60)+intMin1) - ((intHrs1*60)+intMin2));
System.out.println("The time difference is " + timeDifference + " minutes");
} else if((lower1.indexOf('a') == -1) && (lower2.indexOf('a') != -1) && (intMin1 <= 60) && (intMin2 <= 60)){
timeDifference = Math.abs((((24-(intHrs1+12))*60)+intMin1) - ((intHrs2*60)+intMin2));
System.out.println("The time difference is " + timeDifference + " minutes");
} else if(intMin1 >= 60){
System.out.println("Error: The First time is invalid");
} else {
System.out.println("Error: The second time is invalid");
}
http://stackoverflow.com/questions/4927856/how-to-calculate-time-difference-in-java – OldProgrammer
В вашей логике, вы добавляете 12 часов, если это 'pm' вместо' am', и вы получили хороший пример того, что эта логика ошибочна, а это когда '12:56 вечера', вы думаете, вы должны добавить 12 часов на это? –
Иногда, когда вы пытаетесь изобрести колесо, вы получаете квадрат. –