時刻出力設定

time.h に宣言されている time_t, struct tm を使った時刻の出力設定例です。

時刻出力設定(list_32.c)
//-----------------------------------------------------------------
// time_t: 時刻の出力設定
//-----------------------------------------------------------------
#include <stdio.h>
#include <time.h>

int main()
{
    char str[256];
    struct tm *tm;
    time_t t,t2000;
    // get time
    t = time(NULL);
    tm = localtime(&t); // localtime: time_t --> tm
    printf("now time: %s",ctime(&t));
    // time format
    printf("tm struct:\n");
    printf("  sec:%d\n",tm->tm_sec);       // second
    printf("  min:%d\n",tm->tm_min);       // min
    printf(" hour:%d\n",tm->tm_hour);      // hour
    printf(" mday:%d\n",tm->tm_mday);      // day of month
    printf("  mon:%d\n",tm->tm_mon+1);     // month
    printf(" year:%d\n",tm->tm_year+1900); // year
    printf(" wday:%d\n",tm->tm_wday);      // day of week
    printf(" yday:%d\n",tm->tm_yday);      // day of year
    printf("isdst:%d\n",tm->tm_isdst);     // summer time?
    //--------------------------------------------------
    // 書式付き出力
    //--------------------------------------------------
    printf("time format:\n");
    strftime(str,sizeof(str),"\t%Y/%m/%d,%H:%M:%S",tm);
    printf("%s\n",str);
    //--------------------------------------------------
    // 時刻を作為的に進める
    //--------------------------------------------------
    tm->tm_sec  += 2;
    tm->tm_hour += 2; 
    t2000 = mktime(tm); // mktime: tm --> time_t
    printf("advanced time: %s",ctime(&t2000));
    return 0;
}

result
now time: Thu Nov 25 16:49:01 2004
tm struct:
  sec:1
  min:49
 hour:16
 mday:25
  mon:11
 year:2004
 wday:4
 yday:329
isdst:0
time format:
	2004/11/25,16:49:01
advanced time: Thu Nov 25 18:49:03 2004
inserted by FC2 system