前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0

15.5. 時刻・日付・時間差

日付と時刻を管理するためのクラスとして SFXDate クラスがあります。SFXDate クラスは、年、月、日、時、分、秒を管理します。

時間の差を管理するためのクラスとして SFXDateDuration クラスがあります。SFXDateDuration クラスは、時間の差を秒で管理します。

定義

SFXDate date(2008, 10, 12, 23, 45, 58);   // 2008年10月12日 23時45分58秒

値の取得

SInt32 n1 = date.GetYear();   // n1 は 2008 となる
SInt32 n2 = date.GetMonth();  // n2 は 10 となる
SInt32 n3 = date.GetDay();    // n3 は 12 となる
SInt32 n4 = date.GetHour();   // n4 は 23 となる
SInt32 n5 = date.GetMinute(); // n5 は 45 となる
SInt32 n6 = date.GetSecond(); // n6 は 58 となる

値の演算

date.AddYear(1); // date の年は 2009 となる
date.AddSecond(3); // date の秒は 1、分は 46 となる
date.SubMonth(30); // date の月は 4、年は 2007 となる

現在時刻の取得

date = SFXDate::CurrentDate();

書式出力

SFXAnsiString str;
SFXDate date(2008, 10, 12, 23, 45, 58);

// 書式出力

str = date.Format("YYYY/MM/DD hh:mm:ss Wek");

// str は "2008/10/12 23:45:58 Sun" となる

書式については SFXDate::Format を参照してください。

差の計算

SFXDate date1(2008, 10, 12, 22, 45, 58);
SFXDate date2(2008, 10, 12, 22, 55, 48);

// 差の計算

SFXDateDuration duration = date2 - date1;

SInt32 n1 = duration.ToSInt32(); // n1 は 590 となる

duration.Set(date1 - date2);

SInt32 n2 = duration.ToSInt32(); // n2 は -590 となる