arrow 若葉プログラミング塾 > 知識の玉手箱 > C関数リファレンス >
asctime()
asctime()

この関数の目的

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() を使う。

コンパイル時の時刻に関しては、常に定義されるマクロを参照のこと。

arrow 若葉プログラミング塾 > 知識の玉手箱 > C関数リファレンス >
KC