-2

startTimestartDateendTimeendDateより小さいかどうかを確認したいアプリを開発しています。その場合は、情報のみをFirebaseDatabaseに保存する必要があります。startTimeとstartDateがendTimeとendDateより小さいかどうかを確認する方法は?

私がチェックするために、このコードを使用していますがstartTime < endTimestartDate < endDateです:

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; 
    } 

このコードはほとんど細かい作業が、私はされています

 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()方法がありますstartDate = 20-11-2016とstartTime = 10 AMと設定してからendDate = 21-11-2016 a nd endTime = 8 AMの場合、SnackBarに表示される"Start time is greater than end time. Fix it please."が表示されます。8 AM10 AM未満ですが、ここでは午前10時は前日、午前8時は翌日です。したがって、SnackBarを表示するのではなく、データベースにデータを格納する必要があります。

何が問題なのですか?これを修正する方法はありますか?

お知らせください。

答えて

1

時間、分、秒

SimpleDateFormat dfDate = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); 
    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 

     } 
+0

でてSimpleDateFormatを追加します。私は、データベース内の日付と時間を記憶しています方法を変更する必要がありますか? –

+0

はいこのフォーマットのようにdd-MM-yyyy HH:mm:ssのように保存することができます。 – sasikumar

関連する問題