2012-06-26 2 views
-3

Я хочу получить разницу между двумя временами. Я вычисляю это, используя следующее.Разница между двумя временами в android

using this

Но я хочу, чтобы вычислить три разности. Например, у меня есть 6 TIME, как показано ниже.

time1, time2, time3, time4

И я хочу, чтобы вычислить разницу между двумя временами как

long difference1=time2-time1;
long difference2=time4-time3;
long difference3=time6-time5;

Тогда я хочу, помимо этих трех различий. подобный разница1 + разница2 + разница3.

+4

В чем проблема? –

+0

Что вы хотите от единиц разницы? Это легко сделать в миллисекундах, однако сумма различий не будет переводиться во что-либо значимое. – dcow

+0

Я хочу разницу между двумя временами и добавить все различия. –

ответ

2
long difference1 = date2.getTime()-date1.getTime(); 
long difference2 = date4.getTime()-date3.getTime(); 
long difference3 = date6.getTime()-date5.getTime(); 

ling totalDifference = difference1 + difference2 + difference3; 

это totalDifference в миллисекундах, и вы можете преобразовать его в день: час: мин: сек от

days = (int) (totalDifference/(1000 * 60 * 60 * 24)); 
hours = (int) ((totalDifference - (1000 * 60 * 60 * 24 * days))/(1000 * 60 * 60)); 
min = (int) (totalDifference - (1000 * 60 * 60 * 24 * days) - (1000 * 60 * 60 * hours))/ (1000 * 60); 
+0

Это не сделано. Я не получаю суммарную сумму общих различий. –

+0

вы должны получить сумму разницы1, разницу2 и разницу3 в totalDifference – CSharp

+0

Я получаю totaldifference. Но не получайте дней, часов, мин. когда я печатаю дни: часы: мин. он отображает значение 0:00. –

0

Это то, что вы хотите?

long totalTime = (date2.getTime()-date1.getTime() + date4.getTime()-date3.getTime() + date6.getTime()-date5.getTime()); 

Date totalDifDate = new Date(totalTimeMillis); 
+0

'new Date (totalTimeMillis);' бессмысленно .. – dcow

+0

Я не понимаю, что вы говорите. –

0

Лучше класса использовать календарь и GregorianClaendar вместо Date класса.

Date time1, time2, time3, time4; 
[...] 
GregorianCalendar difference12 = new GregorianCalendar(0,0,0,0,0); 
difference12.set(GregorianCalendar.MILLISECNOD, time1.getTime() - time2.getTime()); 

GregorianCalendar difference34 = new GregorianCalendar(0,0,0,0,0); 
difference12.add(GregorianCalendar.MILLISECNOD, time3.getTime() - time4.getTime()); 

Date diff12 = difference12.getGregorianChange(); 
Date diff34 = difference34.getGregorianChange(); 
GregorianCalendar sum = new GregorianCalendar(0,0,0,0,0); 
sum.add(GregorianCalendar.MILLISECOND, diff12.getTime() - time34.getTime()); 
+0

привет @Guillermo я редактирую мой вопрос. –

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