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

日付/時刻系 共通関数 [詳解]

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "cmnclib/Common.h"
#include "cmnclib/CmnTime.h"
#include "cmnclib/CmnLog.h"
#include <unistd.h>

関数

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

詳解

日付/時刻系 共通関数

日付/時刻系共通関数のうち、特に汎用的な関数郡が実装されている。

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

関数詳解

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年問題の影響を受ける。
void CmnTime_Sleep ( unsigned long long  msec)

指定ミリ秒スリープする

引数
msecスリープする時間(ミリ秒)
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を返却する
CmnTimeDateTime* CmnTimeDateTime_AddBySerial ( CmnTimeDateTime datetime,
time_t  time 
)

日時情報を設定する

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

引数
datetime計算元となる日時
time加減算する時間(1970/01/01 00:00:00 をゼロとした経過秒)
戻り値
datetimeを返却する
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を返却する
CmnTimeDateTime* CmnTimeDateTime_SetBySerial ( CmnTimeDateTime datetime,
time_t  time 
)

日時情報を設定する

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

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

現在日時を取得する

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

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

CmnTimeDateTimeを文字列に変換する

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