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



このエントリーをはてなブックマークに追加
指定の日までの日数(mktime, difftime)

#include <stdio.h>
#include <time.h>
    
void print_diff(void) {
    int target_m = 12;                            /* 月の指定 */
    int target_d = 25;                            /* 日の指定 */
    int target_y;
    int diff;
    int oneday = 60 * 60 * 24;                        /* 1日の秒数 */
    time_t timer, mktmr;
    struct tm *date, target;

    timer = time(NULL);
    date = localtime(&timer);

    target_m--;
    target_y = date->tm_year;
    if(date->tm_mon > target_m || (date->tm_mon == target_m && date->tm_mday > target_d)) {
        target_y++;                            /* 指定の日を過ぎている場合は来年 */
    }

    target.tm_sec = 0;
    target.tm_min = 0;
    target.tm_hour = 0;
    target.tm_mday = target_d;
    target.tm_mon = target_m;
    target.tm_year = target_y;
    target.tm_isdst = -1;

    mktmr = mktime(&target);

    diff = (difftime(mktmr, timer) + oneday - 1) / oneday;            /* 指定の日までの秒数÷1日の秒数(切り上げ) */
    if(diff == 0) {
        printf("メリークリスマス!!<br>\n");
    }
    else {
        printf("クリスマスまであと %d 日です。<br>\n", diff);
    }
}

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_diff();
    printf("</body>\n");
    printf("</html>\n");
    return 0;
}
かんたん作成【HTML CSS JavaScript PHP CGI Perl Ruby Python .htaccess】