【发布时间】:2011-03-18 19:06:01
【问题描述】:
我正在使用 Java 日历类来执行以下操作:
- 设置开始日期
- 设置结束日期
- 该范围内的任何日期都是“有效”日期
我有这个有点工作,有点没有。请看下面的代码:
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));
}
基本上,我设置了一个“NOW”日历和一个“FUTURE”日历,然后比较这两个日历以找到有效日期。在我的日历上,有效日期将显示为白色,无效日期将显示为灰色。你会注意到两个变量:
offset = three days after the current selected date
days = the number of valid days from the current selected date
这可行...除非当前选择的日期是该月的最后一天,或前两天(三个一起)。我认为它的偏移量肯定会搞砸它,但逻辑在其他任何地方都有效。有任何想法吗?
【问题讨论】: