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
Ще се радвам,ако някой може да помогне :)
Поздрави!