私の意見では、DatePicker を使用することはそれほど悪い考えではありません。1 か月をカバーする小さな例を次に示します。これらを 12 個グリッドに配置することで、これを 1 年に拡張することはそれほど難しくないと思います。
ジャワ
final DateTimeFormat format = DateTimeFormat.getFormat("yyyy-MM-dd");
final DatePicker datePicker = new DatePicker();
datePicker.setCurrentMonth(format.parse("2012-01-01"));
datePicker.addStyleName("my-cal");
final Date start = format.parse("2012-01-17");
final Date end = format.parse("2012-01-28");
for (final Date date = start; date.compareTo(end) <= 0; CalendarUtil
.addDaysToDate(date, 1)) {
datePicker.addStyleToDates("my-green", date);
}
CSS
.my-green { background-color: green !important; }
.my-cal .datePickerPreviousButton { visibility: hidden; }
.my-cal .datePickerNextButton { visibility: hidden; }
「クリーン」テーマでは、次のようになります。
PS カレンダー全体は次のようになります。
完全なコード:
http://pastebin.com/xkrRQQht