2013-09-04 2 views
1

Здесь у меня есть часть кода, которая учитывает разницу между двумя временами (time1, time2). Как добавить секунды к ней и преобразовать 60 секунд в одну минуту?Расчет разницы во времени с секундами

Я предполагаю, что есть более простой способ справиться с этим, но я изучаю книгу для новичков, поэтому я хотел бы получить ответ так же, как здесь рассчитаны часы и минуты.

hours=time2/100-time1/100; 
    mins=time2%100-time1%100; 

    hours=mins>0?hours:hours-1; 
    mins=mins>0?mins:mins+60; 
+0

Это должно помочь: http://stackoverflow.com/questions/4927856/how-to-calculate-time-difference-in-java – Pawel

+1

Что является единицей '' time1' и time2'? –

+1

Попробуйте Joda Time! http://stackoverflow.com/questions/15134927/difference-in-seconds-between-two-dates-using-joda-time –

ответ

0
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); 
     long startTime = sdf.parse("10:00:00").getTime(); 
     long endTIme = sdf.parse("11:00:00").getTime(); 
     long duration = endTIme - startTime; 

     int seconds = (int) (duration/1000) % 60; 
     int minutes = (int) ((duration/(1000 * 60)) % 60); 
     int hours = (int) ((duration/(1000 * 60 * 60)) % 24); 
0

Я предполагаю, что вы снабжали время как число, например 1234 является 12:34 В этом случае легче разобрать каждый раз, и сравнить.

int mins1 = time1/100 * 60 + time1 % 100; 
int mins2 = time2/100 * 60 + time2 % 100; 
int diff = mins2 - mins1; 

я хочу сделать, это ввести номер 123456, который был бы равен 12:34:56

Чтобы справиться секунд, вы можете сделать.

int secs1 = time1/10000 * 60 * 60 + time1 /100 % 100 * 60 + time1 % 100; 
int secs2 = time2/10000 * 60 * 60 + time2 /100 % 100 * 60 + time2 % 100; 
int diffInSec = secs1 - secs2; 
+0

@Anders R. Bystrup Входной номер как 1234, а не 12:34, и что я хочу сделать, это ввести номер 123456, который будет равен 12:34:56, а затем найти разницу – user2745860

+0

@ user2745860 Обновлен мой ответ. –

Смежные вопросы