cmn-clib(CommonLibraryForC)
C言語共通ライブラリ
 全て データ構造 ファイル 関数 変数 型定義 列挙型 列挙値 マクロ定義
CmnTime.h ファイル

日付/時刻系 共通関数 I/Fヘッダファイル [詳解]

#include <time.h>
#include "cmnclib/Common.h"

[ソースコード]

データ構造

struct  tag_CmnTimeDateTime
 

マクロ定義

#define CMN_TIME_FORMAT_SIZE_ALL   (19 + 1)
 
#define CMN_TIME_FORMAT_SIZE_ALL_SHORT   (14 + 1)
 
#define CMN_TIME_FORMAT_SIZE_DATE   (10 + 1)
 
#define CMN_TIME_FORMAT_SIZE_DATE_SHORT   ( 8 + 1)
 
#define CMN_TIME_FORMAT_SIZE_TIME   ( 8 + 1)
 
#define CMN_TIME_FORMAT_SIZE_TIME_SHORT   ( 6 + 1)
 
#define CMN_TIME_DATETIME_STRING_BUFFER_SIZE   (160)
 

型定義

typedef struct tag_CmnTimeDateTime CmnTimeDateTime
 

列挙型

enum  CmnTimeFormatType {
  CMN_TIME_FORMAT_ALL, CMN_TIME_FORMAT_ALL_SHORT, CMN_TIME_FORMAT_DATE, CMN_TIME_FORMAT_DATE_SHORT,
  CMN_TIME_FORMAT_TIME, CMN_TIME_FORMAT_TIME_SHORT
}
 

関数

D_EXTERN CmnTimeDateTimeCmnTimeDateTime_SetNow (CmnTimeDateTime *datetime)
 現在日時を取得する [詳解]
 
D_EXTERN CmnTimeDateTimeCmnTimeDateTime_Set (CmnTimeDateTime *datetime, int year, int month, int day, int hour, int minute, int second, int isdst)
 日時情報を設定する [詳解]
 
D_EXTERN CmnTimeDateTimeCmnTimeDateTime_SetBySerial (CmnTimeDateTime *datetime, time_t time)
 日時情報を設定する [詳解]
 
D_EXTERN CmnTimeDateTimeCmnTimeDateTime_Add (CmnTimeDateTime *datetime, int year, int month, int day, int hour, int minute, int second)
 日時情報を設定する [詳解]
 
D_EXTERN CmnTimeDateTimeCmnTimeDateTime_AddBySerial (CmnTimeDateTime *datetime, time_t time)
 日時情報を設定する [詳解]
 
D_EXTERN char * CmnTimeDateTime_ToString (const CmnTimeDateTime *datetime, char *buf)
 CmnTimeDateTimeを文字列に変換する [詳解]
 
D_EXTERN char * CmnTime_Format (const CmnTimeDateTime *datetime, const CmnTimeFormatType type, char *buf)
 現在時刻文字列生成 [詳解]
 
D_EXTERN void CmnTime_Sleep (unsigned long long msec)
 指定ミリ秒スリープする [詳解]
 

詳解

日付/時刻系 共通関数 I/Fヘッダファイル

日付/時刻系共通関数を使用するためのI/Fヘッダファイル。
日付/時刻系の共通関数を使用する場合は、このヘッダファイルを読み込むこと

著者
H.Kumagai
日付
2004-06-04
Revision
1.2

マクロ定義詳解

#define CMN_TIME_DATETIME_STRING_BUFFER_SIZE   (160)

時刻文字列のバッファ長

#define CMN_TIME_FORMAT_SIZE_ALL   (19 + 1)

フォーマット後の日付/時刻文字列長 形式:yyyy/mm/dd hh:mm:ss

#define CMN_TIME_FORMAT_SIZE_ALL_SHORT   (14 + 1)

形式:yyyymmddhhmmss

#define CMN_TIME_FORMAT_SIZE_DATE   (10 + 1)

形式:yyyy/mm/dd

#define CMN_TIME_FORMAT_SIZE_DATE_SHORT   ( 8 + 1)

形式:yyyymmdd

#define CMN_TIME_FORMAT_SIZE_TIME   ( 8 + 1)

形式:hh:mm:ss

#define CMN_TIME_FORMAT_SIZE_TIME_SHORT   ( 6 + 1)

形式:hhmmss

型定義詳解

日付時刻情報

列挙型詳解

現在時刻文字列のフォーマットタイプ

列挙値
CMN_TIME_FORMAT_ALL 

形式:yyyy/mm/dd hh:mm:ss

CMN_TIME_FORMAT_ALL_SHORT 

形式:yyyymmddhhmmss

CMN_TIME_FORMAT_DATE 

形式:yyyy/mm/dd

CMN_TIME_FORMAT_DATE_SHORT 

形式:yyyymmdd

CMN_TIME_FORMAT_TIME 

形式:hh:mm:ss

CMN_TIME_FORMAT_TIME_SHORT 

形式:hhmmss

関数詳解

D_EXTERN char* CmnTime_Format ( const CmnTimeDateTime datetime,
const CmnTimeFormatType  type,
char *  buf 
)

現在時刻文字列生成

現在時刻を指定されたフォーマットに従ってバッファに出力する。
指定可能なフォーマットについては、引数typeの項を参照のこと。

引数
datetime(I) フォーマットする日付時刻
type(I) フォーマットタイプ。以下のものを指定すること
  • CMN_TIME_FORMAT_ALL    –形式:yyyy/mm/dd hh:mm:ss
  • CMN_TIME_FORMAT_ALL_SHORT    –形式:yyyymmddhhmmss
  • CMN_TIME_FORMAT_DATE    –形式:yyyy/mm/dd
  • CMN_TIME_FORMAT_DATE_SHORT    –形式:yyyymmdd
  • CMN_TIME_FORMAT_TIME    –形式:hh:mm:ss
  • CMN_TIME_FORMAT_TIME_SHORT    –形式:hhmmss
buf(O) フォーマット後の文字列が格納されるバッファ。
必要なバッファサイズは、以下のマクロから得られる。
  • CMN_TIME_FORMAT_SIZE_ALL    –形式:yyyy/mm/dd hh:mm:ss
  • CMN_TIME_FORMAT_SIZE_ALL_SHORT    –形式:yyyymmddhhmmss
  • CMN_TIME_FORMAT_SIZE_DATE    –形式:yyyy/mm/dd
  • CMN_TIME_FORMAT_SIZE_DATE_SHORT    –形式:yyyymmdd
  • CMN_TIME_FORMAT_SIZE_TIME    –形式:hh:mm:ss
  • CMN_TIME_FORMAT_SIZE_TIME_SHORT    –形式:hhmmss
尚、typeに不正な値が指定された場合はバッファをNUL文字でクリアする
戻り値
bufへのポインタ
著者
H.Kumagai
覚え書き
この関数は<time.h>のlocaltime関数を使用している。
そのため、2038年問題の影響を受ける。
D_EXTERN void CmnTime_Sleep ( unsigned long long  msec)

指定ミリ秒スリープする

引数
msecスリープする時間(ミリ秒)
D_EXTERN CmnTimeDateTime* CmnTimeDateTime_Add ( CmnTimeDateTime datetime,
int  year,
int  month,
int  day,
int  hour,
int  minute,
int  second 
)

日時情報を設定する

引数で指定された日時をdatetimeに設定する。
加減算する値(year~second)には通常の時刻表記の上限を超えて設定可能。

例:monthに12を超える数字、dayに31を超える数字を指定可能。
  2020/11/1 にday=40を加算した場合、datetimeは2020/12/10となる。

引数
datetime計算元となる日時
year加減算する西暦年
month加減算する月
day加減算する日
hour加減算する時
minute加減算する分
second加減算する秒
戻り値
datetimeを返却する
D_EXTERN CmnTimeDateTime* CmnTimeDateTime_AddBySerial ( CmnTimeDateTime datetime,
time_t  time 
)

日時情報を設定する

引数で指定されたtimeをdatetimeに設定する。

引数
datetime計算元となる日時
time加減算する時間(1970/01/01 00:00:00 をゼロとした経過秒)
戻り値
datetimeを返却する
D_EXTERN CmnTimeDateTime* CmnTimeDateTime_Set ( CmnTimeDateTime datetime,
int  year,
int  month,
int  day,
int  hour,
int  minute,
int  second,
int  isdst 
)

日時情報を設定する

引数で指定された日時をdatetimeに設定する

引数
datetime日時を設定する先
year西暦年
month月(1 - 12)
day日(1 - 31)
hour時(0 - 23)
minute分(0 - 59)
second秒(0 - 59)
isdst夏時間(夏時間の場合は1、そうでなければ0、不明の場合は-1)
戻り値
datetimeを返却する
D_EXTERN CmnTimeDateTime* CmnTimeDateTime_SetBySerial ( CmnTimeDateTime datetime,
time_t  time 
)

日時情報を設定する

引数で指定された日時をdatetimeに設定する

引数
datetime日時を設定する先
time1970/01/01 00:00:00 をゼロとした経過秒
戻り値
datetimeを返却する
D_EXTERN CmnTimeDateTime* CmnTimeDateTime_SetNow ( CmnTimeDateTime datetime)

現在日時を取得する

現在日時をdatetimeに設定する。

引数
datetime日時を設定する先
戻り値
datetimeを返却する
D_EXTERN char* CmnTimeDateTime_ToString ( const CmnTimeDateTime datetime,
char *  buf 
)

CmnTimeDateTimeを文字列に変換する

引数
datetime変換するCmnTimeDateTime
buf変換後文字列を格納するバッファ。バッファサイズはCMN_TIME_DATETIME_STRING_BUFFER_SIZE以上であること。