この関数の目的
asctime()は、 struct tm 型のオブジェクトを文字列に変換する。
定義
#include <time.h> char *asctime(const struct tm *timeptr);
働き
この関数は、構造体の展開時刻を以下の形の文字列に変換する。
Sun Sep 16 01:03:52 1973\n\0
これには以下に示すものと等価のアルゴリズムが使われる。
char *asctime(const struct tm *timeptr) { static cosnt char wday_name[7][3] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; static const char mon_name[12][3] = { "Jan", "Feb", "Mar", Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", Nov", "Dec" }; static char result[26]; sprintf(result, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n", wday_name[timeptr->tm_wday], mon_name[timeptr->tm_mon], timeptr->tm_mday, timeptr->tm_hour, timeptr->tm_min, timeptr->tm_sec, 1900 + timeptr->tm_year); return result; }
返り値は、この文字列へのポインタである。
解説
例によって、日本人には使いづらい英語名の時刻表記である。
struct tm 型のオブジェクトを作成するには、localtime() を使う。
コンパイル時の時刻に関しては、常に定義されるマクロを参照のこと。