Browse Source

Bugfix: maximumDate day offseted by 1

master
Henning Hall 6 years ago
parent
commit
44961680e2
1 changed files with 12 additions and 7 deletions
  1. +12
    -7
      android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java

+ 12
- 7
android/src/main/java/com/henninghall/date_picker/wheels/DayWheel.java View File

@ -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())));

Loading…
Cancel
Save