Qt 4.8を使用して、DD HH SSの形式で時間を印刷するにはどうすればよいですか? 秒があり、その形式の文字列を取得したいと考えています。
5 に答える
QDateTime::fromTime_t(seconds).toString("ss hh DD");
http://qt-project.org/doc/qt-5.0/qdatetime.html#toStringを参照してください
期間が必要な場合(質問が本当に不明確でした)、次のようなものを試してください:
QString seconds_to_DHMS(quint32 duration)
{
QString res;
int seconds = (int) (duration % 60);
duration /= 60;
int minutes = (int) (duration % 60);
duration /= 60;
int hours = (int) (duration % 24);
int days = (int) (duration / 24);
if((hours == 0)&&(days == 0))
return res.sprintf("%02d:%02d", minutes, seconds);
if (days == 0)
return res.sprintf("%02d:%02d:%02d", hours, minutes, seconds);
return res.sprintf("%dd%02d:%02d:%02d", days, hours, minutes, seconds);
}
あなたが印刷したいのは、時計の「瞬間」ではなく、時間の長さです。QDateTime は、 secsTo (およびdaysTo )を計算することを除いて、期間とはあまり関係がなく、ほとんどの場合、独自の印刷を行う必要があります。
幸いなことに、数学はそれほど難しくありません。
秒/日/年などの単語の国際化は面倒かもしれませんが。:(
QDateTime::fromTime_tを使用できます:
日付と時刻が 1970-01-01T00:00:00、協定世界時 (Qt::UTC) から経過した秒数である datetime を返します。
数学は信じられないほど難しいです。日は 24 時間ではありません。通常は 24 時間ですが、23 または 25 (夏時間の変更) または 24 時間と 1 秒または 2 (うるう秒) の場合もあります。同じ問題は、月 (さまざまなサイズの月が一般的であるため) 年 (うるう日) にも当てはまり、実際には、日 (週) で定義されることによって日の問題を継承するすべてのものに当てはまります。