-2
我正在開發一個應用程序,我想查看startTime
和startDate
是否小於endTime
和endDate
,如果是,那麼只有信息應該保存在FirebaseDatabase
。如何檢查startTime和startDate是否小於endTime和endDate?
我正在使用此代碼來檢查是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
a nd endTime = 8 AM
,我得到的"Start time is greater than end time. Fix it please."
顯示在SnackBar
中,因爲8 AM
小於10 AM
,但這裏的上午10點是前一天,上午8點是第二天。因此,它應該將數據存儲在數據庫中而不是顯示SnackBar。
怎麼了,怎麼解決這個問題?
請讓我知道。
做我需要改變我存儲日期和時間在數據庫的方式嗎? –
是的,你可以像這樣的格式存儲dd-MM-yyyy HH:mm:ss ...或者你在檢查驗證之前解析日期 – sasikumar