C言語 システム時刻をグリニッジ標準時(年月日)構造体に変換 - time.h - [ gmtime ]

2008.12.02 Tuesday | by LRESULT


ステム時刻をグリニッジ標準時の年月日構造体に変換するには、gmtime()を使います。


gmtime
書式 struct tm* gmtime( const time_t *timer )
機能 システム時刻をグリニッジ標準時用の構造体に変換
引数 const time_t *timer : time()で取得したシステム時刻
戻り値 グリニッジ標準時の struct tm型の構造体で返します。



struct tm型の構造体
int tm_sec 秒[0〜61](最大2秒のうるう秒を含む為)
int tm_min 分[0〜59]
int tm_hour 時[0〜23]
int tm_mday 日[1〜31]
int tm_mon 月[0〜11](-1された月数)
int tm_year 年(1900からの経過年数)
int tm_wday 曜日[0〜6](日:0 月:1 火:2 水:3 木:4 金:5 土:6)
int tm_yday 1月1日からの経過日数[0〜365]
int tm_isdst 夏時間の有無(0:なし 正の値:夏時間)





サンプルコード
現在のシステム時刻から、
グリニッジ標準時の年月日と時刻、曜日、経過日数などを表示してみます。
#include <stdio.h>
#include <time.h>

int main(void)
{
  time_t now;
  struct tm *ltm;

  time( &now );
  ltm = gmtime( &now );

  printf( "%5d : [年]¥n", ltm->tm_year + 1900 );
  printf( "%5d : [月]¥n", ltm->tm_mon + 1 );
  printf( "%5d : [日]¥n", ltm->tm_mday );
  printf( "%5d : [時]¥n", ltm->tm_hour );
  printf( "%5d : [分]¥n", ltm->tm_min );
  printf( "%5d : [秒]¥n", ltm->tm_sec );
  printf( "%5d : [曜日]¥n", ltm->tm_wday );
  printf( "%5d : [経過日数]¥n", ltm->tm_yday );
  printf( "%5d : [夏時間の有無]¥n", ltm->tm_isdst );

  return 0;
}



結果
 2008 : [年]
   12 : [月]
    2 : [日]
   12 : [時]
   21 : [分]
   38 : [秒]
    2 : [曜日]
  336 : [経過日数]
    0 : [夏時間の有無]

と、こんな感じで表示されます。

年数は、+1900して、月数は+1する必要があります。
曜日は、1なので月曜日ですね。


カテゴリ:C言語 time.h | 21:30 | comments(0) | trackbacks(0) | -


コメントする











この記事のトラックバックURL

http://simd.jugem.jp/trackback/150

トラックバック