Конечная дата больше, чем андроид проверки даты начала

У меня есть два EditText. Один с датой начала и другой с датой окончания. Мне нужно сделать проверку и проверить, больше ли дата окончания, чем дата начала. Я не знаю, как я могу это сделать.

В моем коде я делаю разницу между двумя датами в днях, и теперь мне также нужно проверить, больше ли дата окончания, чем дата начала

Вот мой код:

//EditText with string of start date dataInicio = (EditText)findViewById(R.id.ses_dpDataIni); //EditText with string of end date dataFim = (EditText)findViewById(R.id.ses_dpDataFim); //Convert String to calendar to check the difference between two dates.. try{ dateInic = dataInicio.getText().toString(); dateFim = dataFim.getText().toString(); calInic=Calendar.getInstance(); calFim = Calendar.getInstance(); calInic.setTime(form.parse(dateInic)); calFim.setTime(form.parse(dateFim)); } catch (ParseException e) { e.printStackTrace(); } Log.w(SessaoQuotaEdit.class.getName(),"DIFERENCA DE DIAS" +daysBetween(calInic,calFim)); tvDiasQuotas = (TextView)findViewById(R.id.ses_tvNumDiasQuota); tvDiasQuotas.setText("NUMBER OF DAYS: " +daysBetween(calInic,calFim)); //CHECK IS END-DATE IS GREATER THAN START-DATE ............. ............. 

Вы можете мне помочь? Благодаря 🙂

 SimpleDateFormat dfDate = new SimpleDateFormat("yyyy-MM-dd"); public static boolean CheckDates("2012-07-12", "2012-06-12)" { 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 { b = false; //If start date is after the end date } } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return b; } 

Попробуйте эту функцию.

 public static boolean isDateAfter(String startDate,String endDate) { try { String myFormatString = "yyyy-M-dd"; // for example SimpleDateFormat df = new SimpleDateFormat(myFormatString); Date date1 = df.parse(endDate)); Date startingDate = df.parse(startDate); if (date1.after(startingDate)) return true; else return false; } catch (Exception e) { return false; } } 

Он возвращает true, если enddate – после даты начала.

Почему бы не попробовать DateUtils.getRelativeTimeSpanString ?

Спасибо всем ….

 Here is my solution if(calInic.after(calFim)==true) Log.w(SessaoQuotaEdit.class.getName(),"ERROR: DATA FINAL É ANTES DA DATA INICIAL"); else if(calInic.before(calFim)==true) Log.w(SessaoQuotaEdit.class.getName(),"CORRECTO: DATAS CORRECTAS"); else if(calInic.equals(calFim)==true) Log.w(SessaoQuotaEdit.class.getName(),"CORRECTO: DATAS IGUAIS"); 
 ***Used Ram kiran Answer*** public boolean checkDatesBefore(String startDate, String endDate) { boolean b = false; SimpleDateFormat dfDate = new SimpleDateFormat("MM/dd/yyyy"); try { if (dfDate.parse(startDate).before(dfDate.parse(endDate))) { b = true;// If start date is before end date } else if (dfDate.parse(startDate).equals(dfDate.parse(endDate))) { b = true;// If two dates are equal } else { b = false; // If start date is after the end date } } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return b; } checkDatesBefore(startDate,endDate); **and check another time for not less than or equals today** public boolean checkDatesAfter(String selectedDate, String today) { boolean b = false; SimpleDateFormat dfDate = new SimpleDateFormat("MM/dd/yyyy"); try { if (dfDate.parse(selectedDate).compareTo((dfDate.parse(today))) < 0) { b = true;// If start date is before end date } else if (dfDate.parse(selectedDate).equals(dfDate.parse(today))) { b = true;// If two dates are equal } else { b = false; // If start date is after the end date } } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return b; } enter code here call checkDatesAfter(selectedDate,today) **Best of luck..** 
 if (!dateValidation("2016-11-23", "2016-11-24", "yyyy-MM-dd")) { // ToastHelper.show("Please select date properly"); // or do something } public static boolean dateValidation(String startDate,String endDate,String dateFormat ) { try { SimpleDateFormat df = new SimpleDateFormat(dateFormat); Date date1 = df.parse(endDate); Date startingDate = df.parse(startDate); if (date1.after(startingDate)) return true; else return false; } catch (Exception e) { return false; } }