カレンダーの表示


関数名
calendar  年間カレンダーを表示する
形式
void calendar(int year);
引数
year  西暦で表される年号
関数値
なし
注意事項
・休日には対応していない。
・関数 daysOfMonth() (月の日数計算)、dayOfWeek() (曜日の算出)が別途必要である。

用例(calendar-test.c
calendar(1996);

プログラム(calendar.c
void calendar(int year)
{
    int i, k;
    int month, days;

    for (month = 1; month <= 12; month++) {
        printf("\n    %d年%d月\n", year, month);
        printf("日 月 火 水 木 金 土\n");

        k = dayOfWeek(year, month, 1);	 /* 1日の曜日 */
        days = daysOfMonth(year, month); /* 月の日数 */

        for (i = 0; i < k; i++)          /* 1日まで空白で埋める */
            printf("   ");
        for (i = 1; i <= days; i++) {    /* 月の最終日まで表示 */
            printf("%2d ", i);
            if (++k % 7 == 0)            /* 日曜日の直前で改行 */
                printf("\n");
        }
        printf("\n");
    }
}
説明

関連関数
曜日の算出月の日数計算閏年の判定