Time difference - Java
Здравейте колеги,опитвам да напиша програмка,която при подадени 2 различни часа във формат hh:mm:ss,печати разликата между тях.Примерно :
Input:
10:03:43 15:00:58
Output:
04:57:15
Input:
12:05:00 00:00:00
Output:
11:55:00
До момента след доста справки в интернет написах това:
public static void main(String[] args) throws ParseException { Scanner sc = new Scanner(System.in); String startTime = sc.next(); String endTime =sc.next(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); Date d1 = sdf.parse(startTime); Date d2 = sdf.parse(endTime); long elapsed = d2.getTime() - d1.getTime(); //long hours = elapsed/(3600*1000)%24; //long minuti = elapsed/(60 * 1000) % 60; //long seconds = elapsed/1000%60; String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(elapsed), TimeUnit.MILLISECONDS.toMinutes(elapsed) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(elapsed)), TimeUnit.MILLISECONDS.toSeconds(elapsed) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(elapsed))); if (elapsed>0) { System.out.println(hms); }else{ elapsed= elapsed*(-1); String hms1 = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(elapsed), TimeUnit.MILLISECONDS.toMinutes(elapsed) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(elapsed)), TimeUnit.MILLISECONDS.toSeconds(elapsed) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(elapsed))); System.out.println(hms1); }
Проблемът е,че при 2рият тест моят изход е: 12:05:00 [b]вместо[/b] 11:55:00
Ще се радвам,ако някой може да помогне :)
Поздрави!