TNB Library
公開メンバ関数 | 静的公開メンバ関数 | 公開変数類 | 全メンバ一覧
CSystemTime クラス

システムタイム管理クラス [詳解]

#include <TnbTime.h>

+ CSystemTime の継承関係図

公開メンバ関数

CSystemTimeAddDay (int iDay)
 [加算] 日加算 [詳解]
 
CSystemTimeAddHour (int iHour)
 [加算] 時加算 [詳解]
 
CSystemTimeAddMillSec (LONGLONG llMillSec)
 [加算] ミリ秒加算 [詳解]
 
CSystemTimeAddMinute (int iMinute)
 [加算] 分加算 [詳解]
 
CSystemTimeAddMonth (int iMonth)
 [加算] 月加算 [詳解]
 
CSystemTimeAddSecond (LONGLONG iSecond)
 [加算] 秒加算 [詳解]
 
CSystemTimeAddYear (int iYear)
 [加算] 年加算 [詳解]
 
virtual INT_PTR Compare (const CSystemTime &t) const
 [確認] 比較 [詳解]
 
 CSystemTime (const FILETIME &ft)
 代入コンストラクタ [詳解]
 
 CSystemTime (const SYSTEMTIME &st)
 代入コンストラクタ [詳解]
 
 CSystemTime (const time_t &tm)
 代入コンストラクタ [詳解]
 
 CSystemTime (void)
 コンストラクタ [詳解]
 
void Empty (void)
 [設定] 空化 [詳解]
 
CStr Format (LPCTSTR lpszFormat=NULL) const
 [作成] 文字列作成 [詳解]
 
WORD GetDay (void) const
 [取得] 日取得 [詳解]
 
WORD GetHour (void) const
 [取得] 時取得 [詳解]
 
WORD GetMillSec (void) const
 [取得] ミリ秒取得 [詳解]
 
WORD GetMinute (void) const
 [取得] 分取得 [詳解]
 
WORD GetMonth (void) const
 [取得] 月取得 [詳解]
 
WORD GetSecond (void) const
 [取得] 秒取得 [詳解]
 
WORD GetYear (void) const
 [取得] 年取得 [詳解]
 
bool IsEmpty (void) const
 [確認] 状態確認 [詳解]
 
virtual bool IsEqual (const TNB::CSystemTime &t) const
 [確認] 比較 [詳解]
 
bool IsValid (void) const
 [確認] 有効確認. [詳解]
 
CSystemTime LocalToTzSpecificLocal (LPTIME_ZONE_INFORMATION lpTzInfo) const
 [取得] 指定ローカルタイム取得 [詳解]
 
CSystemTime LocalToUtc (void) const
 [取得] UTC取得 [詳解]
 
bool operator!= (const TNB::CSystemTime &t) const
 [確認] 比較 [詳解]
 
LONGLONG operator- (const CSystemTime &t) const
 [取得] 時間差 [詳解]
 
bool operator< (const TNB::CSystemTime &t) const
 [確認] 比較 [詳解]
 
bool operator<= (const TNB::CSystemTime &t) const
 [確認] 比較 [詳解]
 
CSystemTimeoperator= (const FILETIME &ft)
 [代入] 代入 [詳解]
 
CSystemTimeoperator= (const SYSTEMTIME &st)
 [代入] 代入 [詳解]
 
CSystemTimeoperator= (const time_t &tm)
 [代入] 代入 [詳解]
 
bool operator== (const TNB::CSystemTime &t) const
 [確認] 比較 [詳解]
 
bool operator> (const TNB::CSystemTime &t) const
 [確認] 比較 [詳解]
 
bool operator>= (const TNB::CSystemTime &t) const
 [確認] 比較 [詳解]
 
void Set (int iYear, int iMonth, int iDay)
 [代入] 代入. [詳解]
 
void StringTo (LPCTSTR lpsz)
 [代入] 文字列による代入. [詳解]
 
int ToJapaneseEra (int &_iYear) const
 [作成] 和年号作成. [詳解]
 
CStr ToTimeString (void) const
 [作成] 文字列作成 [詳解]
 
CSystemTime UtcToLocal (void) const
 [取得] ローカルタイム取得 [詳解]
 

静的公開メンバ関数

static CSystemTime GetCurrent (void)
 [取得] 現在の時間(LOCAL) [詳解]
 
static CSystemTime GetCurrentUtc (void)
 [取得] 現在の時間(UTC) [詳解]
 
static DWORD GetDayOfTheWeek (const SYSTEMTIME &t)
 [計算] 曜日計算. [詳解]
 
static DWORD GetEndOfMonth (DWORD dwYear, DWORD dwMonth)
 [計算] 末日計算 [詳解]
 
static bool IsLeap (DWORD dwYear)
 [確認] 閏年判定 [詳解]
 

公開変数類

WORD wDay
 [詳解]
 
WORD wDayOfWeek
 曜日 [詳解]
 
WORD wHour
 [詳解]
 
WORD wMilliseconds
 ミリ秒 [詳解]
 
WORD wMinute
 [詳解]
 
WORD wMonth
 [詳解]
 
WORD wSecond
 [詳解]
 
WORD wYear
 [詳解]
 

詳解

システムタイム管理クラス

基本的に保持している情報は現在のタイムゾーンの Local Time です。
UTC を代入すると、 Local Time に変換し格納します。

SYSTEMTIME を public継承していますので、 SYSTEMTIME を引数にもつ API に直接使えます。
覚え書き
曜日( wDayOfWeek )は計算後正しくない値を示している可能性が有ります。
必要ファイル
TnbTime.h
日付
06/06/06 新規作成
06/08/24 各要素に対する計算メソッド追加。
07/01/24 和暦に対する計算メソッド追加。
11/07/27 IsValid() メソッドを追加。
11/08.08 Format() で、 例外が発生する問題を修正。
11/01/06 AddSecond() の引数の型を LONGLONG へ変更。
12/05/03 StringTo() 新規。
19/04/26 ToJapaneseEra() の「令和」対応。

TnbTime.h293 行目に定義があります。

構築子と解体子

◆ CSystemTime() [1/4]

CSystemTime ( void  )

コンストラクタ

覚え書き
年、月、日、他、すべて0になります。

TnbTime.h302 行目に定義があります。

◆ CSystemTime() [2/4]

CSystemTime ( const SYSTEMTIME st)

代入コンストラクタ

引数
st代入する SYSTEMTIME(LocalTime)

TnbTime.h311 行目に定義があります。

◆ CSystemTime() [3/4]

CSystemTime ( const FILETIME ft)

代入コンストラクタ

引数
ft代入する FILETIME(UTC)

TnbTime.h320 行目に定義があります。

◆ CSystemTime() [4/4]

CSystemTime ( const time_t &  tm)

代入コンストラクタ

引数
tm代入する time_t(UTC)

TnbTime.h329 行目に定義があります。

関数詳解

◆ AddDay()

CSystemTime & AddDay ( int  iDay)

[加算] 日加算

引数
iDay加算する日(マイナスも可能)
戻り値
自分の参照

TnbTime.h514 行目に定義があります。

◆ AddHour()

CSystemTime & AddHour ( int  iHour)

[加算] 時加算

引数
iHour加算する時間(マイナスも可能)
戻り値
自分の参照

TnbTime.h524 行目に定義があります。

◆ AddMillSec()

CSystemTime & AddMillSec ( LONGLONG  llMillSec)

[加算] ミリ秒加算

引数
llMillSec加算するミリ秒(マイナスも可能)
戻り値
自分の参照

TnbTime.h554 行目に定義があります。

◆ AddMinute()

CSystemTime & AddMinute ( int  iMinute)

[加算] 分加算

引数
iMinute加算する分(マイナスも可能)
戻り値
自分の参照

TnbTime.h534 行目に定義があります。

◆ AddMonth()

CSystemTime & AddMonth ( int  iMonth)

[加算] 月加算

引数
iMonth加算する月(マイナスも可能)
戻り値
自分の参照

TnbTime.h475 行目に定義があります。

◆ AddSecond()

CSystemTime & AddSecond ( LONGLONG  iSecond)

[加算] 秒加算

引数
iSecond加算する秒(マイナスも可能)
戻り値
自分の参照

TnbTime.h544 行目に定義があります。

◆ AddYear()

CSystemTime & AddYear ( int  iYear)

[加算] 年加算

引数
iYear加算する年(マイナスも可能)
戻り値
自分の参照

TnbTime.h463 行目に定義があります。

◆ Compare()

virtual INT_PTR Compare ( const CSystemTime t) const
virtual

[確認] 比較

引数
t比較対象
戻り値
自分は t と同じ
1以上自分は t より大きい
0未満自分は t より小さい

IComparableT< TNB::CSystemTime >を実装しています。

TnbTime.h441 行目に定義があります。

◆ Empty()

void Empty ( void  )

[設定] 空化

TnbTime.h406 行目に定義があります。

◆ Format()

CStr Format ( LPCTSTR  lpszFormat = NULL) const

[作成] 文字列作成

引数
lpszFormatフォーマット。省略すると、"%Y-%m-%d %H:%M:%S"が適用されます
参照
https://msdn.microsoft.com/ja-jp/library/fe06s4ak.aspx
戻り値
文字列

TnbTime.h668 行目に定義があります。

◆ GetCurrent()

static CSystemTime GetCurrent ( void  )
static

[取得] 現在の時間(LOCAL)

戻り値
現在の時間(LOCAL)

TnbTime.h761 行目に定義があります。

◆ GetCurrentUtc()

static CSystemTime GetCurrentUtc ( void  )
static

[取得] 現在の時間(UTC)

戻り値
現在の時間(UTC)

TnbTime.h772 行目に定義があります。

◆ GetDay()

WORD GetDay ( void  ) const

[取得] 日取得

戻り値

TnbTime.h393 行目に定義があります。

◆ GetDayOfTheWeek()

static DWORD GetDayOfTheWeek ( const SYSTEMTIME t)
static

[計算] 曜日計算.

指定日の曜日番号を算出します。

引数
t時間
戻り値
曜日番号。0=日曜、1=月曜、2=火曜、3=水曜、4=木曜、5=金曜、6=土曜

TnbTime.h785 行目に定義があります。

◆ GetEndOfMonth()

static DWORD GetEndOfMonth ( DWORD  dwYear,
DWORD  dwMonth 
)
static

[計算] 末日計算

引数
dwYear
dwMonth
戻り値
末日

TnbTime.h820 行目に定義があります。

◆ GetHour()

WORD GetHour ( void  ) const

[取得] 時取得

戻り値

TnbTime.h395 行目に定義があります。

◆ GetMillSec()

WORD GetMillSec ( void  ) const

[取得] ミリ秒取得

戻り値
ミリ秒

TnbTime.h401 行目に定義があります。

◆ GetMinute()

WORD GetMinute ( void  ) const

[取得] 分取得

戻り値

TnbTime.h397 行目に定義があります。

◆ GetMonth()

WORD GetMonth ( void  ) const

[取得] 月取得

戻り値

TnbTime.h391 行目に定義があります。

◆ GetSecond()

WORD GetSecond ( void  ) const

[取得] 秒取得

戻り値

TnbTime.h399 行目に定義があります。

◆ GetYear()

WORD GetYear ( void  ) const

[取得] 年取得

戻り値

TnbTime.h389 行目に定義があります。

◆ IsEmpty()

bool IsEmpty ( void  ) const

[確認] 状態確認

戻り値
true空(値が0)
false情報有り

TnbTime.h416 行目に定義があります。

◆ IsEqual()

virtual bool IsEqual ( const TNB::CSystemTime t) const
virtualinherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と同じ
false自分は t と異なる

TnbComparable.h73 行目に定義があります。

◆ IsLeap()

static bool IsLeap ( DWORD  dwYear)
static

[確認] 閏年判定

引数
dwYear
戻り値
true閏年
false平年

TnbTime.h805 行目に定義があります。

◆ IsValid()

bool IsValid ( void  ) const

[確認] 有効確認.

年月日時分秒ミリ秒の値が正しい(範囲内)であること確認します。 曜日はチェックしません。

戻り値
true有効
false異常

TnbTime.h428 行目に定義があります。

◆ LocalToTzSpecificLocal()

CSystemTime LocalToTzSpecificLocal ( LPTIME_ZONE_INFORMATION  lpTzInfo) const

[取得] 指定ローカルタイム取得

覚え書き
保持している時間を現在のタイムゾーンのローカル時間として、 指定のタイムゾーンのローカル時間に変換します。
WindowCEでは使用できません。
引数
lpTzInfoタイムゾーン情報
戻り値
時間(特殊LocalTime)

TnbTime.h617 行目に定義があります。

◆ LocalToUtc()

CSystemTime LocalToUtc ( void  ) const

[取得] UTC取得

覚え書き
保持している時間を現在のタイムゾーンのローカル時間として、UTCに変換します。
戻り値
時間(UTC)

TnbTime.h574 行目に定義があります。

◆ operator!=()

bool operator!= ( const TNB::CSystemTime t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と異なる
false自分は t と同じ

TnbComparable.h98 行目に定義があります。

◆ operator-()

LONGLONG operator- ( const CSystemTime t) const

[取得] 時間差

引数
t比較対象
戻り値
時間差(ミリ秒)

TnbTime.h564 行目に定義があります。

◆ operator<()

bool operator< ( const TNB::CSystemTime t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t より小さい
false自分は t と同じか大きい

TnbComparable.h106 行目に定義があります。

◆ operator<=()

bool operator<= ( const TNB::CSystemTime t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と同じか小さい
false自分は t より大きい

TnbComparable.h114 行目に定義があります。

◆ operator=() [1/3]

CSystemTime & operator= ( const FILETIME ft)

[代入] 代入

引数
ft代入する FILETIME(UTC)
戻り値
自分の参照

TnbTime.h352 行目に定義があります。

◆ operator=() [2/3]

CSystemTime & operator= ( const SYSTEMTIME st)

[代入] 代入

引数
st代入する SYSTEMTIME(LocalTime)
戻り値
自分の参照

TnbTime.h339 行目に定義があります。

◆ operator=() [3/3]

CSystemTime & operator= ( const time_t &  tm)

[代入] 代入

引数
tm代入する time_t(UTC)
戻り値
自分の参照

TnbTime.h367 行目に定義があります。

◆ operator==()

bool operator== ( const TNB::CSystemTime t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と同じ
false自分は t と異なる

TnbComparable.h90 行目に定義があります。

◆ operator>()

bool operator> ( const TNB::CSystemTime t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t より大きい
false自分は t と同じか小さい

TnbComparable.h122 行目に定義があります。

◆ operator>=()

bool operator>= ( const TNB::CSystemTime t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と同じか大きい
false自分は t より小さい

TnbComparable.h130 行目に定義があります。

◆ Set()

void Set ( int  iYear,
int  iMonth,
int  iDay 
)

[代入] 代入.

年、月、日を設定。他はすべて0になります。

引数
iYear年。
iMonth月。
iDay日。

TnbTime.h380 行目に定義があります。

◆ StringTo()

void StringTo ( LPCTSTR  lpsz)

[代入] 文字列による代入.

年4桁、月2桁、日2桁、時2桁、分2桁、秒2桁、ミリ秒3桁の文字列から代入します。

覚え書き
各数値の敷居はハイフン、コロン、スラッシュ、ピリオド、アポストロフィー、スペースが認められます(なくてもOK)。 また、各数字は必ず0パディングしておく必要があります。
例:
"1921/01/01 12:30:00.111"
"19710216193000"
引数
lpsz文字列

TnbTime.h642 行目に定義があります。

◆ ToJapaneseEra()

int ToJapaneseEra ( int &  _iYear) const

[作成] 和年号作成.

現在保持している年を和暦に変換します。 明治は 1868/1/25、大正は 1912/7/30、昭和は 1926/12/25、平成は 1989/1/7、令和は 2019/5/1 を始まりとしています。

覚え書き
明治天皇の測位は 1868/10/23 だが、改元の詔書には「改慶應四年爲明治元年」とあり、 改元が年の呼称を改めるということから、1月1日(グレゴリオ暦1868年1月25日)に遡って適用されている。
引数
[out]_iYear和暦の年
戻り値
-1エラー
0明治
1大正
2昭和
3平成
4令和

明治の始まり

大正の始まり

昭和の始まり

平成の始まり

令和の始まり

TnbTime.h717 行目に定義があります。

◆ ToTimeString()

CStr ToTimeString ( void  ) const

[作成] 文字列作成

覚え書き
”時:分:秒.㍉秒”というフォーマットの文字列が得られます。
戻り値
文字列

TnbTime.h698 行目に定義があります。

◆ UtcToLocal()

CSystemTime UtcToLocal ( void  ) const

[取得] ローカルタイム取得

覚え書き
保持している時間をUTCとして、現在のタイムゾーンのローカル時間に変換します。
戻り値
時間(LocalTime)

TnbTime.h593 行目に定義があります。

メンバ詳解

◆ wDay

WORD wDay
inherited

TnbTime.h880 行目に定義があります。

◆ wDayOfWeek

WORD wDayOfWeek
inherited

曜日

TnbTime.h879 行目に定義があります。

◆ wHour

WORD wHour
inherited

TnbTime.h881 行目に定義があります。

◆ wMilliseconds

WORD wMilliseconds
inherited

ミリ秒

TnbTime.h884 行目に定義があります。

◆ wMinute

WORD wMinute
inherited

TnbTime.h882 行目に定義があります。

◆ wMonth

WORD wMonth
inherited

TnbTime.h878 行目に定義があります。

◆ wSecond

WORD wSecond
inherited

TnbTime.h883 行目に定義があります。

◆ wYear

WORD wYear
inherited

TnbTime.h877 行目に定義があります。