在Android中计算两次之间的差异

Mun*_*zza 9 java time android date

我有两个字符串变量,如StartTime和EndTime.我需要通过用StartTime减去EndTime来计算TotalTime.

StartTime和EndTime的格式如下:

StartTime = "08:00 AM";
EndTime = "04:00 PM";
Run Code Online (Sandbox Code Playgroud)

小时和分钟格式的总时间.如何在Android中计算?

Chi*_*rag 37

试试下面的代码.

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm a");
date1 = simpleDateFormat.parse("08:00 AM");
date2 = simpleDateFormat.parse("04:00 PM");

long difference = date2.getTime() - date1.getTime(); 
days = (int) (difference / (1000*60*60*24));  
hours = (int) ((difference - (1000*60*60*24*days)) / (1000*60*60)); 
min = (int) (difference - (1000*60*60*24*days) - (1000*60*60*hours)) / (1000*60);
hours = (hours < 0 ? -hours : hours);
Log.i("======= Hours"," :: "+hours);
Run Code Online (Sandbox Code Playgroud)

输出 - 小时:: 8


Kal*_*esh 5

注意:更正了以下由 Chirag Raval 提供的代码,因为在 Chirag 提供的代码中,当我们尝试查找 22:00 到 07:00 的时间时存在一些问题。

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
Date startDate = simpleDateFormat.parse("22:00");
Date endDate = simpleDateFormat.parse("07:00");

long difference = endDate.getTime() - startDate.getTime(); 
if(difference<0)
{
    Date dateMax = simpleDateFormat.parse("24:00");
    Date dateMin = simpleDateFormat.parse("00:00");
    difference=(dateMax.getTime() -startDate.getTime() )+(endDate.getTime()-dateMin.getTime());
}
int days = (int) (difference / (1000*60*60*24));  
int hours = (int) ((difference - (1000*60*60*24*days)) / (1000*60*60)); 
int min = (int) (difference - (1000*60*60*24*days) - (1000*60*60*hours)) / (1000*60);
Log.i("log_tag","Hours: "+hours+", Mins: "+min); 
Run Code Online (Sandbox Code Playgroud)

结果将是:小时:9,分钟:0