diff --git a/android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java b/android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java index e2bf5ff..5a98d62 100644 --- a/android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java +++ b/android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java @@ -20,26 +20,23 @@ public class DayWheel extends Wheel { Calendar cal = getStartCal(); Calendar endCal = getEndCal(); - int i = 0; - do { - displayValues.add(getDisplayValue(cal)); + while (!cal.after(endCal)){ values.add(getValueFormat(cal)); + displayValues.add(getDisplayValue(cal)); cal.add(Calendar.DATE, 1); - i++; } - while (!isSameDay(cal,endCal)); - picker.setMaxValue(0); picker.setDisplayedValues(displayValues.toArray(new String[0])); picker.setMinValue(0); - picker.setMaxValue(i-1); + picker.setMaxValue(displayValues.size() - 1); } private Calendar getStartCal(){ Calendar cal = pickerView.getInitialDate(); if (pickerView.minDate != null) { cal.setTime(pickerView.minDate); + resetToMidnight(cal); } else cal.add(Calendar.DATE, -defaultNumberOfDays / 2); return cal; @@ -49,11 +46,19 @@ public class DayWheel extends Wheel { Calendar cal = Calendar.getInstance(); if (pickerView.maxDate != null) { cal.setTime(pickerView.maxDate); + resetToMidnight(cal); } else cal.add(Calendar.DATE, defaultNumberOfDays / 2); return cal; } + private void resetToMidnight(Calendar cal){ + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + } + private boolean isSameDay(Calendar c1, Calendar c2) { SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy", pickerView.locale); return (sdf.format(c1.getTime()).equals(sdf.format(c2.getTime())));