2015-02-11 7 views
0

Я вычисляю разницу во времени и вычитая прорыв от разности времениРасчет разницы во времени в android

Я не могу вычитать время перерыва от разницы во времени.

long hoursDifference,mindifference; 
      d1 = df.parse(strattime); 
      d2 = df.parse(endtime); 
      d3= df1.parse(textbreaktime); 

    hoursDifference = (long) (d3.getTime()-((d2.getTime() - d1.getTime())) 
      /(60 * 60 * 1000) % 24); 
    mindifference = (long) ((d3.getTime()-(d2.getTime()) - d1.getTime()) 
      /(60 * 1000) % 60); 

Спасибо

+0

Что фактический выходной Вы получаете? какой тип результата вы ожидаете? – Supamiu

+0

например d1 равно 2.30 d2 3.00 - 00.30 разрыв 0,05, затем 00.25 –

ответ

1

Ваша задача две неправильные скобки, правильно он должен выглядеть следующим образом

long hoursDifference,mindifference; 
     d1 = df.parse(strattime); 
     d2 = df.parse(endtime); 
     d3= df1.parse(textbreaktime); 

hoursDifference = (long) (((d2.getTime() - d1.getTime()) - d3.getTime()) 
     /(60 * 60 * 1000)) % 24; 
mindifference = (long) (((d2.getTime() - d1.getTime()) - d3.getTime()) 
     /(60 * 1000)) % 60; 

Но гораздо проще (и лучше читаемым) было бы, если вы используете Дата функции как

Date result = new Date((d2.getTime() - d1.getTime()) - d3.getTime()); 
int hours = result.getHours(); 
int minutes = result.getMinutes(); 



Редактировать:
Это то, что вы хотите?
d1 = 2:00
d2 = 2:30
d3 = 0:05
результат = (2:30 - 2:00) - 0:05 = 0:25

+0

это дает разницу, не вычитая время разрыва –

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