カレンダーまたはグレゴリオ暦を使用して、日付グリッドを繰り返し作成しようとしています。しかし、どちらも 2010 年 8 月は 30 日で、9 月 2 日と 3 日が週末だと思っているようです。カレンダーの年が間違っているようですが、そのパラメーターを 3 回チェックしました。ここにいくつかの抜粋があります。
startDate.set(2010, 8, 28);
SchedulerCalendar currentDate = (SchedulerCalendar) startDate.clone();
for(int i = 0; i<daysDisplayed; i++){
newDate = new TextView(this);
String dateString = currentDate.get(Calendar.MONTH)+"/"+currentDate.get(Calendar.DATE);
//+"/"+currentDate.get(Calendar.YEAR);
newDate.setText(dateString);
newDate.setId(i+1);
newDate.setWidth(blockWidth);
newDate.setHeight(DATE_HEIGHT);
dateBar.addView(newDate);
currentDate.add(Calendar.DATE, 1);
}
private class SchedulerCalendar extends GregorianCalendar {
@Override
public void add(int field, int value) {
super.add(field, value);
if(this.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY) {
if(value>=0) super.add(Calendar.DATE, 2);
if(value<0) super.add(Calendar.DATE, -1);
}
if(this.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY) {
if(value>=0) super.add(Calendar.DATE, 1);
if(value<0) super.add(Calendar.DATE, -2);
}
}
}