ソースの先頭にあらかじめ
#include <time.h>を入れておけば
time_t t; struct tm *s; time(&t); s=localtime(&t);を実行後にsのメンバ変数を参照することで現在の日付や時刻が分かります。
ちなみにtm構造体は以下のようになっています。
struct tm {
int tm_sec; /* 秒(0-61)(60,61は閏秒対応) */
int tm_min; /* 分(0~59) */
int tm_hour; /* 時(0~23) */
int tm_mday; /* 日(1~31) */
int tm_mon; /* 月(0:1月,1:2月,...11:12月) */
int tm_year; /* 1900からの経過年数 */
int tm_wday; /* 曜日(0:日,1:月,...,6:土) */
int tm_yday; /* 1月1日からの経過日数(0~365) */
int tm_isdst; /* 夏時間(0:無効) */
};
が、文字列に整形するのが面倒という私のようなずぼらな人間用にctime()が用意されていて、
time_t t;
char buff[32];
if(time(&t)){
if(!ctime_r(&t,buff))
strcpy(buff,"no time\n");
}
else
strcpy(buff,"no time\n");
printf("%s",buff);
のように書くことができます。なおこの場合の文字列は
Sun Jan 23 01:23:45 1970のような形式になります。
0 件のコメント:
コメントを投稿