Intereting Posts
Android GCM автоматически получает push-уведомление Android – Создать тост, привязанный к представлению Получить фрагмент по идентификатору в действии Инструмент перевода для Android для оказания помощи в предоставлении контекста Рисование на холсте с пользовательским взаимодействием немного отсталое Android: Как установить ImageView как маркер в API-интерфейсе google map API? Ошибка сборки Android в Crosswalk Для Ripple требуется уровень API 21 (текущий минимум 11), android? Могу ли я использовать d3.js для создания интерактивных визуализаций внутри приложения Android? Не удалось открыть связанное приложение с (профилем компании) url другим приложением для Android? Перечислите все файлы и папку Dropbox с помощью API Dropbox и загрузите файл, нажатый в android Android adb shell ping – эта версия ping не должна запускаться с привилегиями. Aborting Подкасты Android Использование rabbitmq в android для чата Что означает * + в regexp

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

У меня есть два 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; } }