我想计算时间差。我有三个EditText,我想在前两个编辑文本中以HH:MM格式输入时间。然后计算时差,结果将显示在相同格式的第三个edittext字段中。 如果日期的变化,该时间差将根据该计算,即如何计算两个时间域之间的时间差,相对于日期的变化
如果第一时间= 23:00和第二时间= 01:00
然后,时间差= 02:00小时
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);
}
}
我这段代码执行时,却给出了错误的来源不found.I认为错误在getDifference method.Please给任何其他逻辑
我不知道你的错误,但要注意'新的SimpleDateFormat(“hh:mm”)'和'新的SimpleDateFormat(“HH:MM”)';你可能想要''HH:mm“'。 – 2011-03-02 20:08:34