かんたん作成【HTML CSS JavaScript PHP CGI Perl Ruby Python .htaccess】

カレンダー

#include <stdio.h>
#include <time.h>
    
void print_calendar(void) {
    int    i, year, mon, startwday, endmday;
    int    days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};    /* 1月〜12月の日数 */
    int    count = 0;
    time_t    timer;
    struct tm *date;

    timer = time(NULL);
    date = localtime(&timer);
    year = date->tm_year + 1900;                        /* 今年 */
    mon = date->tm_mon + 1;                            /* 今月 */
    startwday = (date->tm_wday - date->tm_mday % 7 + 1 + 7) % 7;        /* 今月1日の曜日 */

    if(mon == 2 && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)) {
        endmday = days[mon - 1] + 1;                    /* 今月最後の日(うるう年) */
    }
    else {
        endmday = days[mon - 1];                    /* 今月最後の日 */
    }

    printf("<table border=\"3\" bordercolor=\"#993333\" cellspacing=\"0\" cellpadding=\"5\">\n");
    printf("<tr>\n");
    printf("    <th colspan=\"7\"><big>%d</big><small>月</small></th>\n", mon);
    printf("</tr>\n");
    printf("<tr>\n");
    printf("    <td align=\"center\"><small style=\"color:red\">日</small></td>\n");
    printf("    <td align=\"center\"><small>月</small></td>\n");
    printf("    <td align=\"center\"><small>火</small></td>\n");
    printf("    <td align=\"center\"><small>水</small></td>\n");
    printf("    <td align=\"center\"><small>木</small></td>\n");
    printf("    <td align=\"center\"><small>金</small></td>\n");
    printf("    <td align=\"center\"><small style=\"color:blue\">土</small></td>\n");
    printf("</tr>\n");

    for(i = 0 ; i < startwday; i++) {                    /* 1日までの空欄 */
        if(count % 7 == 0) {
            printf("<tr>\n");
        }
        printf("<td> </td>\n");
        count++;
    }
    for(i = 1 ; i <= endmday; i++) {                    /* 日付を表示 */
        if(count % 7 == 0) {
            printf("<tr>\n");
        }
        printf("<td align=\"right\"", i);
        if(count % 7 == 0) {
            printf(" style=\"color:red\"", i);
        }
        else if(count % 7 == 6) {
            printf(" style=\"color:blue\"", i);
        }
        printf(">%d</td>\n", i);
        count++;
        if(count % 7 == 0) {
            printf("</tr>\n");
        }
    }
    while(count % 7 != 0) {                            /* 最後の日からの空欄 */
        printf("<td> </td>\n");
        count++;
        if(count % 7 == 0) {
            printf("</tr>\n");
        }
    }
    printf("</table>\n");
}

int main(void) {
    printf("Content-type: text/html\n\n");
    printf("<html>\n");
    printf("<head>\n");
    printf("<title>カレンダー</title>\n");
    printf("</head>\n");
    printf("<body>\n");
    print_calendar();
    printf("</body>\n");
    printf("</html>\n");
    return 0;
}
かんたん作成【HTML CSS JavaScript PHP CGI Perl Ruby Python .htaccess】