cal: Centre month and year above calendar

This commit is contained in:
Richard Ipsum 2019-04-28 21:26:25 +01:00 committed by Michael Forney
parent aae808fe5b
commit 5b92551057
1 changed files with 9 additions and 6 deletions

9
cal.c
View File

@ -3,6 +3,7 @@
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
@ -98,7 +99,8 @@ drawcal(size_t year, int month, size_t ncols, size_t nmons, int fday)
"September", "October", "November", "December" };
char *days[] = { "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", };
size_t m, n, col, cur_year, cur_month, dow;
int line;
int line, pad;
char month_year[sizeof("Su Mo Tu We Th Fr Sa")];
for (m = 0; m < nmons; ) {
n = m;
@ -109,8 +111,9 @@ drawcal(size_t year, int month, size_t ncols, size_t nmons, int fday)
cur_month -= 12;
cur_year += 1;
}
printf(" %s %-4zu ", smon[cur_month], cur_year);
printf(" ");
snprintf(month_year, sizeof(month_year), "%s %zu", smon[cur_month], cur_year);
pad = sizeof(month_year) - 1 - strlen(month_year);
printf("%*s%s%*s ", pad / 2 + pad % 2, "", month_year, pad / 2, "");
}
putchar('\n');
for (col = 0, m = n; m < nmons && col < ncols; ++col, ++m) {