【发布时间】:2016-11-19 06:17:48
【问题描述】:
我正在开发一个应用程序,我想检查startTime 和startDate 是否小于endTime 和endDate,如果是,那么只有信息应该保存在FirebaseDatabase。
我正在使用此代码检查startTime endTime 和startDate endDate:
try {
Date date1 = currentTime.parse(btnChooseStartTime.getText().toString());
Date date2 = currentTime.parse(btnChooseEndTime.getText().toString());
differenceBetweenStartEndTime = date2.getTime() - date1.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
isEndDateGreaterThanStartDate = CheckDates(btnChooseEndDate.getText().toString(), btnChooseStartDate.getText().toString());
if (String.valueOf(differenceBetweenStartEndTime).contains("-")) {
Snackbar snackbar = Snackbar
.make(coordinatorLayout, "Start time is greater than end time. Fix it please.", Snackbar.LENGTH_SHORT);
snackbar.setDuration(3500);
snackbar.show();
progressDialogPostingE.dismiss();
} else if (!isEndDateGreaterThanStartDate) {
Snackbar snackbar = Snackbar
.make(coordinatorLayout, "Start date is greater than end date. Fix it please.", Snackbar.LENGTH_SHORT);
snackbar.setDuration(3500);
snackbar.show();
progressDialogPostingE.dismiss();
} else {
// code for storing information in database
}
这里是CheckDates() 方法:
public static boolean CheckDates(String d2, String d1) {
SimpleDateFormat dfDate = new SimpleDateFormat("dd-MM-yyyy");
boolean b = false;
try {
if(dfDate.parse(d1).before(dfDate.parse(d2)))
{
b = true;//If start date is before end date
}
else if(dfDate.parse(d1).equals(dfDate.parse(d2)))
{
b = true;//If two dates are equal
}
else if (dfDate.parse(d2).before(dfDate.parse(d1)))
{
b = false; //If start date is after the end date
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return b;
}
这段代码几乎可以正常工作,但是当我设置 startDate = 20-11-2016 和 startTime = 10 AM 然后 endDate = 21-11-2016 和 endTime = 8 AM 时,我得到"Start time is greater than end time. Fix it please." 显示在SnackBar 因为8 AM 小于10 AM,但这里的 10 AM 是前一天的,8 AM 是第二天的。因此,它应该将数据存储在数据库中,而不是显示 SnackBar。
出了什么问题以及如何解决?
请告诉我。
【问题讨论】:
标签: android validation android-calendar android-datepicker android-timepicker