I have the following function which displays a DatePicker, for which I am trying to set the min and max dates that are allowed. I am successfully setting the max date to the date I am after, but I am having no luck with the min date. I want the min date to be set to tomorrow, so that the user cannot select today's date in the dialog.
What am I doing wrong?
Calendar now = Calendar.getInstance();
//now.add(Calendar.DAY_OF_MONTH, 1);
Calendar c1 = Calendar.getInstance();
c1.add(Calendar.DAY_OF_MONTH, 31);
dateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DatePickerDialog datePickerDialog ;
datePickerDialog = DatePickerDialog.newInstance(LoginSuccess.this, now.get(Calendar.YEAR),
now.get(Calendar.MONTH),
now.get(Calendar.DAY_OF_MONTH));
datePickerDialog.setThemeDark(false);
datePickerDialog.showYearPickerFirst(false);
datePickerDialog.setAccentColor(Color.parseColor("#009688"));
datePickerDialog.setTitle("Select Date From DatePickerDialog");
Calendar cal=Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis()+(1000 * 60 * 60 * 24));
// cal.setTimeInMillis(Calendar.DAY_OF_YEAR, 1);
datePickerDialog.setMinDate(cal);
now.add(Calendar.DAY_OF_MONTH, 30);
List<Calendar> dayslist= new LinkedList<Calendar>();
Calendar[] daysArray;
Calendar cAux = Calendar.getInstance();
while ( cAux.getTimeInMillis() <= now.getTimeInMillis())
{
if (cAux.get(Calendar.DAY_OF_WEEK)!=1)
{
Calendar c = Calendar.getInstance();
c.setTimeInMillis(cAux.getTimeInMillis());
dayslist.add(c);
}
cAux.setTimeInMillis(cAux.getTimeInMillis()+(24*60*60*1000));
}
daysArray = new Calendar[dayslist.size()];
for (int i = 0; i<daysArray.length;i++)
{
daysArray[i]=dayslist.get(i);
}
datePickerDialog.setMaxDate(c1);
datePickerDialog.show(getFragmentManager(), "DatePickerDialog");
datePickerDialog.setSelectableDays(daysArray);
}
});
}