Home > ソフトウエア | 技術 > 気まぐれ Programming TIPS 【2】

気まぐれ Programming TIPS 【2】

【2】 現在時刻の取得(C)

気まぐれに思いついた内容を、備忘録的に殴り書くものでございます。

今回は現在時刻を取得する方法について。
現在時刻を取得するには、標準Cライブラリのtime関数を使います。

time_t time(time_t *time);

引数timeは時刻の格納場所へのポインタ。
戻り値は1970年1月1日0時以降の経過秒数。

time関数で取得できるシステム時刻は、経過秒数なのでわかりやすい形に変換する。

struct tm *localtime(const time_t time);

tm構造体のメンバは以下の通り、
tm_sec – 秒(0~59)
tm_min – 分(0~59)
tm_hour – 時間(0~23)
tm_mday – 日(1~31)
tm_mon – 月(0~11、1月=0)
tm_year – 年(実際の西暦から1900を引いた数)
tm_wday – 曜日(0~6、日曜日=0)
tm_yday – 年内の通産日(0~365、1月1日=0)
tm_isdst – 夏時間が有効な場合は正の値、夏時間が無効な場合は0、夏時間がどうかが不明な場合は負の値

time関数で取得したtime_t変数をlocaltime関数に渡すと、
タイムゾーンに合わせてtm構造体に変換される。

以下サンプルコード

  char week[7][3] = {"日","月","火","水","木","金","土"};  time_t time_now; struct tm  *local;  time(&time_now); local = localtime(&time_now);  printf("%d年%02d月%02d日(%s)\n",local->tm_year+1900,local->tm_mon+1,local->tm_mday,week[local->tm_wday]); printf("%02d時%02d分%02d秒\n", local->tm_hour, local->tm_min, local->tm_sec);  

実行結果
2009年08月17日(月)
14時02分15秒

Home > ソフトウエア | 技術 > 気まぐれ Programming TIPS 【2】

Search
Feeds
Meta

Return to page top