+ int x = 6;
+ int y = 3;
+ const float hstep = (float)(COLS-x)/5.0;
+
+ /* Get start of week */
+ year_t year = YEAR;
+ month_t month = MONTH;
+ day_t day = DAY;
+ int shift = day_of_week(year, month, day);
+ add_days(&year, &month, &day, -shift+MON);
+
+ /* Print Header */
+ mvwprintw(win, 1, 0, "%s", month_to_str(MONTH));
+ for (int d = 0; d < 5; d++) {
+ // FIXME..
+ const char *str = hstep >= 10 ? day_to_string(d+MON) : day_to_str(d+MON);
+ mvwprintw(win, 0, x+ROUND(d*hstep), "%02d/%02d", month, day);
+ mvwprintw(win, 1, x+ROUND(d*hstep), "%s", str);
+ add_days(&year, &month, &day, 1);
+ }
+
+ /* Print times */
+ int start = 8;
+ for (int h = 0; h < (LINES-6)/4+1; h++)
+ mvwprintw(win, 3+h*4, 0,"%02d:%02d", (start+h)%12, 0);
+
+ /* Print lines */
+ mvwhline(win, y-1, 0, ACS_HLINE, COLS);
+ for (int d = 0; d < 5; d++)
+ mvwvline(win, y, x+ROUND(d*hstep)-1, ACS_VLINE, LINES-y-2);