如何在android中比较开始时间和结束时间?
我的问题是如何比较开始时间和结束时间之间的时间 比较两次如何在android中比较开始时间和结束时间?,android,android-timepicker,datetime-comparison,Android,Android Timepicker,Datetime Comparison,我的问题是如何比较开始时间和结束时间之间的时间 比较两次 开始时间 结束时间 我使用TimePickerDialog来获取时间,我使用一种方法来传递参数,如long for startTime和endTime,我使用如下方法 //Method: boolean isTimeAfter(long startTime, long endTime) { if (endTime < startTime) { return false; } else {
TimePickerDialog
来获取时间,我使用一种方法来传递参数,如long for startTime和endTime,我使用如下方法
//Method:
boolean isTimeAfter(long startTime, long endTime) {
if (endTime < startTime) {
return false;
} else {
return true;
}
}
String strStartTime = edtStartTime.getText().toString();
String strEndTime = edtEndTime.getText().toString();
long lStartTime = Long.valueOf(strStartTime);
long lEndTime = Long.valueOf(strEndTime);
if (isTimeAfter(lStartTime, lEndTime)) {
} else {
}
如何比较两次。请建议我。首先,您必须将时间字符串转换为SimpleDataFormat,如下所示:
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
Date inTime = sdf.parse(strStartTime);
Date outTime = sdf.parse(strEndTime);
if (isTimeAfter(inTime, outTime)) {
} else {
}
boolean isTimeAfter(Date startTime, Date endTime) {
if (endTime.before(startTime)) { //Same way you can check with after() method also.
return false;
} else {
return true;
}
}
然后按如下方式调用您的方法:
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
Date inTime = sdf.parse(strStartTime);
Date outTime = sdf.parse(strEndTime);
if (isTimeAfter(inTime, outTime)) {
} else {
}
boolean isTimeAfter(Date startTime, Date endTime) {
if (endTime.before(startTime)) { //Same way you can check with after() method also.
return false;
} else {
return true;
}
}
您还可以比较开始时间和结束时间的长短。
int dateDelta = inTime.compareTo(outTime);
switch (dateDelta) {
case 0:
//startTime and endTime not **Equal**
break;
case 1:
//endTime is **Greater** then startTime
break;
case -1:
//startTime is **Greater** then endTime
break;
}
那么这个呢:
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
public static boolean isTimeAfter(Date startTime, Date endTime) {
return !endTime.before(startTime);
}
}
try {
Date inTime = sdf.parse(mEntryTime);
Date outTime = sdf.parse(mExitTime);
if (Config.isTimeAfter(inTime, outTime)) {
//Toast.makeText(AddActivity.this, "Time validation success", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(AddActivity.this, "Exit time must be greater then entry time", Toast.LENGTH_LONG).show();
}
} catch (ParseException e) {
e.printStackTrace();
//Toast.makeText(AddActivity.this, "Parse error", Toast.LENGTH_LONG).show();
}
在上午12点和下午12点的情况下会出现问题。您尝试过吗?可能您必须将时间转换为24小时格式,这样不会产生问题@HeenaArorawhat可以是函数“isTimeAfter”之后和try present之前的“}”。您应该重新查看代码:)。