How to calculate the time difference between two time fields , with respect to the date changes
Posted
by
Tiru
on Stack Overflow
See other posts from Stack Overflow
or by Tiru
Published on 2011-03-02T19:50:42Z
Indexed on
2012/09/26
15:37 UTC
Read the original article
Hit count: 237
android
I want to calculate the time difference.I have three EditTexts , I want to input the times in the first two edittexts in HH:MM format. And then calculate the time difference and the result will show on third edittext field in same format. If the date changes, the time difference will calculate according that, i.e
If first time = 23:00 and second time = 01:00
then, the time difference = 02:00 hours
public class TimeCalculate extends Activity {
private String mBlock;
private String mBlockoff;
private String mBlockon ;
// String mHours, mMinutes;
Date date1, date2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText blockoff = (EditText) findViewById(R.id.blockoff);
mBlockoff = blockoff.getText().toString();
EditText blockon = (EditText) findViewById(R.id.blockon);
mBlockon = blockon.getText().toString();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("hh:mm");
try {
date1 = simpleDateFormat.parse(mBlockoff);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
date2 = simpleDateFormat.parse(mBlockon);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mBlock = getDifference(date1, date2);
EditText block = (EditText) findViewById(R.id.block);
block.setText(mBlock.toString());
}
public static String getDifference(Date startTime, Date endTime) {
if (startTime == null)
return "corrupted";
Calendar startDateTime = Calendar.getInstance();
startDateTime.setTime(startTime);
Calendar endDateTime = Calendar.getInstance();
endDateTime.setTime(endTime);
long milliseconds1 = startDateTime.getTimeInMillis();
long milliseconds2 = endDateTime.getTimeInMillis();
long diff = milliseconds2 - milliseconds1;
/*int hours = (int)diff / (60 * 60 * 1000);
int minutes = (int) (diff / (60 * 1000)); minutes = minutes - 60 * hours;
long seconds = diff / (1000); */
//timeDiff = DateUtils.formatElapsedTime(seconds);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:MM");
Date date = new Date(diff);
return simpleDateFormat.format(date);
}
}
I executed this code ,but gives error as Source not found.I think error at getDifference method.Please give any other logic
© Stack Overflow or respective owner