C言語 システム時刻の取得 - time.h - [ time ]
2008.11.28 Friday | by LRESULT
システム時刻を取得するには、time()を使います。
この、システム時刻とは、一般的にグリニッジ標準時の1970年1月1日00:00:00を
基準とした、現在までの経過時間(秒)のことです。
書式 | time_t time( time_t *timer ) |
---|---|
機能 | システム時刻の取得 |
引数 | time_t *timer : システム時刻(秒)を格納 |
戻り値 | 成功すると、システム時刻を返し、 失敗すると、-1を返します。 また、引数(timer)にNULLを指定すると、システム時刻を返します。 |
※ time_t型は、一般的にlong型でtypedefされており、時刻を表す型です。
※ t = time( NULL );と、time( &t ); の結果(t)は同じです。
time()の戻り値は、本当に1970年からの秒数なのか? と、いうわけでザックリと経過秒から何年ほどか調べてみます。 |
---|
#include <stdio.h> #include <time.h> int main(void) { time_t sec; int yy, dd, hh, mm; time( &sec ); printf( "1970年から%d[秒]経過...¥n", sec ); mm = sec / 60; printf( "1970年から%d[分]経過...¥n", mm ); hh = mm / 60; printf( "1970年から%d[時間]経過...¥n", hh ); dd = hh / 24; printf( "1970年から%d[日]経過...¥n", dd ); yy = dd / 365; printf( "1970年から%d[年]経過...¥n", yy ); return 0; } |
1970年から1227968904[秒]経過... 1970年から20466148[分]経過... 1970年から341102[時間]経過... 1970年から14212[日]経過... 1970年から38[年]経過... |
---|
と、表示されます。 確かに38年経過してます。今が2008年なので間違ってないです。 几帳面ですね。 |