Use this code.
I use this code in my application.
// Global declaration Calendar preferDate1 = new GregorianCalendar(); Calendar preferDate2 = new GregorianCalendar(); final Calendar c = Calendar.getInstance(); year = c.get(Calendar.YEAR); month = c.get(Calendar.MONTH); day = c.get(Calendar.DAY_OF_MONTH); private int year, month, day; // here preferredDate1 and preferredDate2 are textview preferredDate1.setOnClickListener(new OnClickListener() { @SuppressLint("NewApi") @Override public void onClick(View v) { DatePickerDialog dp = new DatePickerDialog(MainActivity.this, prefferedDate1Picker, preferDate1 .get(Calendar.YEAR), preferDate1.get(Calendar.MONTH), preferDate1.get(Calendar.DAY_OF_MONTH)); dp.getDatePicker().setMinDate(c.getTimeInMillis()); dp.show(); } }); private final DatePickerDialog.OnDateSetListener prefferedDate1Picker = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { preferDate1 = new GregorianCalendar(selectedYear, selectedMonth, selectedDay); preferredDate2.setText(""); preferredDate1.setText((selectedDay < 10 ? "0" + String.valueOf(selectedDay) : String.valueOf(selectedDay)) + "/" + (selectedMonth + 1 < 10 ? "0" + String.valueOf((selectedMonth + 1)) : String.valueOf((selectedMonth + 1))) + "/" + selectedYear); } }; // This will set date based on preferredDate1 // change here according to your need. If you want to add or remove one month then set based on data. In this I add one day in second data picker. preferredDate2.setOnClickListener(new OnClickListener() { @SuppressLint("NewApi") @Override public void onClick(View v) { DatePickerDialog dp2 = new DatePickerDialog(MainActivity.this, prefferedDate2Picker, preferDate2 .get(Calendar.YEAR), preferDate2.get(Calendar.MONTH), preferDate2.get(Calendar.DAY_OF_MONTH)); long mili = preferDate1.getTimeInMillis() + 86400000L; dp2.getDatePicker().setMinDate(mili); dp2.show(); } }); private final DatePickerDialog.OnDateSetListener prefferedDate2Picker = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { preferDate2 = new GregorianCalendar(selectedYear, selectedMonth, selectedDay+1); preferredDate2.setText((selectedDay < 10 ? "0" + String.valueOf(selectedDay) : String.valueOf(selectedDay)) + "/" + (selectedMonth + 1 < 10 ? "0" + String.valueOf((selectedMonth + 1)) : String.valueOf((selectedMonth + 1))) + "/" + selectedYear); } };
source share