0

wxString時間、分、秒、ミリ秒を含む があります。wxDateTimeこの情報からを作成しようとしています。の形式のままにすることも"%H:%M:%S.%f"、値を個別に取得することもできます。

私の最初の考えは、h、m、s、ms を受け取るコンストラクターを使用することでしたが、これに渡す場所をwxDateTime作成する方法が見つかりません。wxDateTime_t

wxDateTime& wxDateTime(wxDateTime_t hour, wxDateTime_t minute = 0, wxDateTime_t second = 0, wxDateTime_t millisec = 0)

wxParseTimeまた、デフォルトのコンストラクターを使用してこれを呼び出す場所についてもよく調べてきましたが、この関数に正しくwxDateTime時間を渡す方法がわかりません。const wxChar*

const wxChar * ParseTime(const wxChar *time)

これらのアイデアのいずれかについて洞察を与えたり、これに対するより良いアプローチを提供したりできる人はいますか?

このサイトwxwidgetsから情報を取得しています。

助けてくれてありがとう!

追加情報: wxDateTime::wxDateTimewxDateTime::wxParseTime

4

1 に答える 1

0

したがって、wxParseTime はミリ秒をサポートしていないことがわかります。ただし、パスイン"%H:%M:%S"は有効です。

また、「型 wxDateTime_t は unsigned short として型定義されており、年数、時間数、分数、秒数、およびミリ秒数を格納するために使用されます」という情報も見つかりました。したがって、このようなものを使用して wxStrings から unsigned short を作成することが可能です。

unsigned long msec = 0;
token.ToULong(&msec);

これは、時間、分、秒、およびミリ秒に対してwxDateTime& wxDateTime(wxDateTime_t hour, wxDateTime_t minute = 0, wxDateTime_t second = 0, wxDateTime_t millisec = 0)コンストラクターに渡して、目的の wxDateTime を作成するために実行できます。

私が行ったルートは、wxParseTime を使用して wxDateTime オブジェクトを更新し、その後ミリ秒を設定することでした。現在の wxDateTime を取得したので、年/月/日がプリセットされます。

token = lineTkz.GetNextToken(); // Next token is "%H:%M:%S"
const wxChar* constTime = token.c_str(); // Convert from wxString to wxChar*
wxDateTime dateTime = wxDateTime::Now(); // Get current datetime object
dateTime.ParseTime(constTime); // Update hours, minutes, and seconds from wxChar*
token = lineTkz.GetNextToken(); // Next token is milliseconds as wxString
unsigned long msec = 0; // Create unsigned long
token.ToULong(&msec); // Get value out of wxString and save into unsigned long
dateTime.SetMillisecond(msec);  // Update wxDateTime's milliseconds using set method

bool isValid = dateTime.IsValid();エラー チェックに使用して、有効な wxDateTime があることを確認することもできます。

確認できるもう 1 つのことは、wxParseTime の呼び出しからの戻り値です。

const wxChar* bad = dateTime.ParseTime(constTime);

wxParseTime "変換が失敗した場合は NULL を返し、それ以外の場合はスキャンを停止した文字へのポインターを返します。".

これが、これに遭遇した他の誰かに役立つことを願っています。

于 2013-06-27T16:40:47.193 に答える