Я работаю с классом Java Calendar, чтобы сделать следующее:
- Установить дату начала
- Установить дату окончания
- Любая дата в этом диапазонеявляется "действительной" датой
У меня это несколько работает, и немного нет.Пожалуйста, смотрите код ниже:
nowCalendar.set(Calendar.DATE, nowCalendar.get(Calendar.DATE) + offset);
int nowDay = nowCalendar.get(Calendar.DATE);
Calendar futureCalendar = Calendar.getInstance();
futureCalendar.set(Calendar.DATE, nowDay + days);
Date now = nowCalendar.getTime();
Date endTime = futureCalendar.getTime();
long now_ms = now.getTime();
long endTime_ms = endTime.getTime();
for (; now_ms < endTime_ms; now_ms += MILLIS_IN_DAY) {
valid_days.addElement(new Date(now_ms));
System.out.println("VALID DAY: " + new Date(now_ms));
}
По сути, я установил календарь «СЕЙЧАС» и календарь «БУДУЩЕЕ», а затем сравнил два календаря, чтобы найти действительные дни.В моем календаре действительные дни будут закрашены белым, а недействительные дни - серым.Вы заметите две переменные:
offset = three days after the current selected date
days = the number of valid days from the current selected date
Это работает ... ЗА ИСКЛЮЧЕНИЕМ, если текущая выбранная дата является последним днем месяца или двумя днями ранее (все три вместе).Я думаю, что это смещение, которое определенно облажается, но логика работает везде.Есть идеи?