C言語 標準関数 | 応用 | サンプル

標準関数
構文
応用

管理人

プライバシーポリシー


書式

#include <time.h>

char * ctime( const time_t *timr );

■戻り値:
「曜日 月 日 時:分:秒 年」の固定形式に変換された文字列へのポインタを返す。

関連関数
説明

timeで取得したtimr(グリニッチ標準時(GMT)で1970/1/1 00:00:00 から現在までの経過秒数)を引数に、「曜日 月 日 時:分:秒 年」の固定形式に変換された文字列へのポインタを返す。
time_t型はlong型と同じである。同様な関数としてlocaltimeがある。

また、timrから86400(3600*24)を減じた値を引数として指定することで、前日同時刻の日付形式を求めることもできる。

サンプル

#include <stdlib.h>
#include <time.h>

/* time.h内での定義 */
struct tm {
  int tm_sec;/* 秒[0-61]閏秒考慮 */
  int tm_min;/* 分[0-59] */
  int tm_hour;/* 時[0-23] */
  int tm_mday;/* 日[1-31] */
  int tm_mon;/* 月[0-11] */
  int tm_year;/* 年[1900年から起算] */
  int tm_wday;/* 曜日[0-6] 0:日曜日 */
  int tm_yday;/* 年内の経過日数[0-365] */
  int tm_isdst;/* 日本では0 */
};

main() {

  time_t rtime;
  time_t atime;

  /* 経過秒を取得 */
  rtime = time( &atime );
  if( rtime == -1 ) {
    printf( "時間取得でエラーが発生しました。\n" );
    return -1;
  }

  /* 経過秒を確認 */
  printf( "rtime=%d\n" , rtime );
  printf( "atime=%d\n\n" , atime );

  /* 構造体形式のローカル(日本)時間に変換 */
  struct tm * strtim;
  strtim = localtime( &rtime );

  /* 内容を確認 */
  printf( "tm_sec=%d\n" , strtim->tm_sec );
  printf( "tm_min=%d\n" , strtim->tm_min );
  printf( "tm_hour=%d\n" , strtim->tm_hour );
  printf( "tm_mday=%d\n" , strtim->tm_mday );
  printf( "tm_mon=%d\n" , strtim->tm_mon );
  printf( "tm_year=%d\n" , strtim->tm_year );
  printf( "tm_wday=%d\n" , strtim->tm_wday );
  printf( "tm_yday=%d\n" , strtim->tm_yday );
  printf( "tm_isdst=%d\n\n" , strtim->tm_isdst );

  /* 文字列形式のローカル(日本)時間に変換 */
  char * chrtime;
  chrtime = ctime( &rtime );
  printf( "chrtime=%s" , chrtime );/* chrtimeの末尾は\n\0 */

  return 0;
}

実行結果

rtime=1500561325
atime=1500561325

tm_sec=25
tm_min=35
tm_hour=23
tm_mday=20
tm_mon=6
tm_year=117
tm_wday=4
tm_yday=200
tm_isdst=0

chrtime=Thu Jul 20 23:35:25 2017


Copyright © 2008-2015 http://hitorilife.com All Rights Reserved.