!7 concept CalendarEntry { YMD date; S text; } module Calendar > DynSCP { int year = localYear(), month = localMonth(); start { db(); setModuleName("Calendar (" + month + "/" + year + ")"); } visualize2 { int days = daysInMonth(year, month); int weekDay = dayOfWeek_nr(calendarFromYMD(year, month, 1)); new LL rows; for (int i = 1; i <= days; i++) { if (l(last(rows)) > weekDay || empty(rows)) rows.add(new L); while (weekDay > l(last(rows))) last(rows).add(jlabel()); last(rows).add(jcenteredlabel(str(i))); weekDay = (weekDay+1) % 7; } while (l(last(rows)) < 7) last(rows).add(jlabel()); ret hvgrid(rows); } }